Inspiration
Producing a real advertising jingle — a professional one, with lyrics, a singer, and a composed backing track — is completely out of reach for most small businesses. It takes a copywriter, a singer, a composer, a studio, and a mixing engineer, and it costs and takes time that a local shop or an early-stage startup simply doesn't have. At the same time, we noticed that almost every AI audio tool built for the Algerian market treats Darija as an afterthought — a rough translation bolted onto a French or English pipeline. We wanted to build something that closed both gaps at once: a tool that makes jingle production instant and affordable, and one where Algerian Darija is a first-class language, not a translation layer.
What it does
Jingle AI turns a simple brand description into a complete, ready-to-air advertising jingle — lyrics, a singing voice, and music — in a few minutes. A user walks through a short guided wizard (brand basics, audience and context, platform, creative direction), and the system writes ad-copywriter-style lyrics in French, English, or authentic Algerian Darija, composes a matching instrumental, synthesizes a vocal performance, and mixes everything into a final MP3 — automatically adjusted to the target platform, whether that's a 15-second TikTok cut, an Instagram Reel, or a 30-second radio spot.
How we built it
The backend is a layered FastAPI service — routers, services, repositories, SQLAlchemy ORM — on top of a normalized PostgreSQL (Neon) schema with UUID keys and soft deletes. The AI layer sits behind a provider-agnostic interface (AIProviderService), orchestrated asynchronously so generation never blocks the API. Google Gemini writes the lyrics and produces two downstream briefs — a voice brief and a music brief — which drive two parallel pipelines: Gemini TTS synthesizes the raw vocal, and MusicGen-small generates the instrumental. The two are then reconciled: librosa detects the vocal's musical key, a custom autotune stage (librosa + PSOLA) locks the voice onto pitch while preserving natural vocal formants, and the instrumental is key-aligned to match. pydub handles the final mix — ducking, level balancing, fades, normalization.
Challenges we ran into
The hardest problem wasn't generating a voice or generating music individually — it was making them sound like they belonged to each other. Off-the-shelf TTS speaks, it doesn't sing, so we had to build our own pitch-correction stage from scratch to force a spoken voice into a real melody without making it sound robotic or artificial. Getting Algerian Darija to sound authentic rather than machine-translated took real prompt engineering grounded in actual cultural reference points, not literal French-to-Darija conversion. We also had to carefully parallelize independent stages of the pipeline — text, voice, and music generation don't have to happen sequentially — just to keep total generation time short enough for a live demo.
Accomplishments that we're proud of
Hearing a flat, spoken TTS line turn into an actual sung jingle hook through our autotune stage is the single most convincing moment of the whole product — that's the part that makes people stop and listen. We're also proud that the Darija output doesn't sound translated; it sounds like it was written by someone from Algiers. And on the engineering side, we didn't just hack together a demo — we built a real layered backend with a swappable AI provider layer, a normalized database, and an architecture that's actually ready to scale past the hackathon.
What we learned
We learned that AI-generated voice and AI-generated music don't automatically sound like they belong together — key, tempo, and emotional tone all have to be explicitly reconciled, or the result feels like two separate tracks playing at once. We also learned a lot about the limits of prompting for underrepresented languages: getting genuinely natural Darija output required treating it as a cultural and linguistic problem, not just a translation problem. On the systems side, we learned how much smoother development gets when the AI provider is abstracted from day one — it let us swap and tune Gemini, TTS, and MusicGen independently without touching business logic.
What's next for Jingle AI
Support for additional languages and regional dialects beyond French, English, and Algerian Darija More voice styles and singer personas so each brand can have a distinct "voice identity" Direct publishing integrations for TikTok, Instagram, and Spotify Ads Swappable premium AI providers (e.g. ElevenLabs, Suno) behind the existing abstraction layer, for users on paid plans
Built With
- alembic
- argon2
- asyncio
- fastapi
- gemini-2.5-flash
- gemini-tts
- google-gemini
- huggingface
- jwt
- librosa
- musicgen
- neon
- postgresql
- psola
- pydub
- python
- pytorch
- sqlalchemy
Log in or sign up for Devpost to join the conversation.