Skip to content
StreetTongue is live on iOS and Android. App Store | Google Play

· Dax · Language Strategy  · 11 min read

Why we built custom AI scenarios (and why no other language app has)

The one thing I always wanted from a language app: the ability to practice the exact conversation I'm about to have. Now you can.

Two years ago I had a dentist appointment in Roma Norte.

I’d been living in Mexico City for eight months at that point. I could order at a taquería, ask for directions, chat with the guy at the corner store. My Spanish was functional. I was making progress.

Then I got a toothache.

My upper left molar had been sensitive to cold for about two weeks. Nothing unbearable. But enough that I made an appointment.

I opened every language app I had. Duolingo. Babbel. An older Rosetta Stone subscription I’d never fully used. I spent an hour the night before trying to find something that would help me explain what was happening. I knew how to say “I have a toothache.” I didn’t know how to say that the sensitivity was specifically to cold, that it was the upper left molar, that it had started two weeks ago and was getting slightly worse.

None of the apps had what I needed. Not even close.

I showed up to that appointment with a screenshot of a Google Translate output and a lot of pointing. The dentist was patient. It worked out. But I left feeling like I’d failed at something I should have been able to handle by now.

The Problem With Fixed Libraries

Every language app is built around a content library. Someone at the company writes a script for a doctor visit. Someone else writes one for a restaurant, an airport, a hotel check-in. They record audio, build exercises, ship it.

This works fine for getting started. You learn the basics. You build vocabulary.

But it breaks the moment real life shows up.

Real life doesn’t give you the script the app wrote. Real life gives you a dentist who asks a follow-up question the app didn’t prepare you for. A landlord who negotiates differently than the textbook version of a landlord. A first date who uses slang you’ve never seen in any lesson.

The content teams at language apps are smart and work hard, but they can’t write every scenario. No one can. The moment you need something specific, you’re on your own.

Do the math on what a truly complete library would require: every city StreetTongue covers, multiplied by every profession, every medical situation, every family dynamic, every kind of landlord, every kind of coworker. That’s not a large number a content team could eventually work through. It’s unbounded, because the variable that matters most, your specific situation, changes with every person who opens the app. A content team can write a strong general lesson on renting an apartment. It cannot write the lesson on your specific landlord, your specific building, and the specific way you need to explain that the water heater has been out for four days. That lesson only exists if it gets built for you, when you need it.

I kept waiting for someone to solve this. I downloaded new apps every few months hoping something had changed. It hadn’t.

The Insight

At some point it became obvious that this was an AI problem.

The reason content libraries run out is that humans have to write every piece of content. That’s a hard constraint that AI removes.

The harder question was: can you get AI to generate conversations that actually sound like how people talk in a specific city? Not generic textbook Spanish. Not “correct” Spanish. Real Mexico City Spanish, the kind you’d hear from a receptionist in a Roma Norte clinic, from a landlord in Tepito, from someone on a first date in Condesa.

The answer is yes, with work.

The key was grounding the AI in the same dialect data that powers the rest of StreetTongue. Chilango slang, neighborhood context, local registers, how formality works in CDMX, what phrases mark you as an outsider. Feed that in correctly, with the right prompting structure, and the generated output starts to feel real.

We spent months tuning this. We tested it on situations we’d actually faced. We had people who live in Mexico City read the outputs and tell us when something felt off. We fixed it. We ran it again.

What We Built

Here’s how it works.

You open the app, go to custom scenarios, and type what you want to practice. It can be anything. A medical situation, a housing negotiation, a job interview, explaining a dietary restriction at a restaurant. Whatever you’re actually facing.

You tap generate. StreetTongue builds a multi-turn practice conversation with a local character who responds the way a real person in that neighborhood would respond. The conversation has structure: clear goals, a realistic time frame, success criteria. It’s not just a chat.

Describing what you want matters more than you’d think, but you don’t need to get the wording right. Typing something like “I need to tell my landlord in Mexico City the water heater has been broken for four days and I want it fixed this week” is enough. StreetTongue turns that plain language description into a scene: who you’re talking to, where the conversation happens, what each side wants out of it. You’ll usually see a short setup, a name, a location, a goal, before the dialogue starts, so you know what you’re walking into before you say a word.

Then you practice it. You record each of your lines. You get pronunciation feedback the same way you do with any other phrase in the app. Word-by-word. You can hear the reference audio. You can replay it as many times as you want. If a word doesn’t land, you see exactly which syllable was off and you record that line again before moving to the next turn. You’re not reading a transcript and hoping you sound right. You’re getting corrected in the middle of a live exchange, the same way a friend would stop you mid-sentence to fix your pronunciation before you kept going.

If you don’t like the scenario, discard it. If it’s exactly what you needed, save it. Build a library of the specific situations that matter to you.

A few examples that came up during testing:

The dentist situation I described above was actually the first one I tested. The generated conversation started with a receptionist asking how they could help, me explaining the location of the pain, the receptionist asking how long it had been bothering me. Four turns in, I’d said everything I needed to say. I ran it three times before the actual appointment. It went fine.

The landlord negotiation one was trickier. I needed to push back on a rent increase while staying on good terms with someone I was going to keep living next to. The generated scenario got the register right. Respectful but direct. Specific to the social dynamic in CDMX, where tenant-landlord relationships have a particular texture that isn’t captured in any app I’ve used.

The food allergy one happened because a friend was coming to visit and had a serious allergy. We practiced how to explain it at restaurants in a way that would be taken seriously. That’s a situation with real stakes. The app won’t save your life, but practicing the words ahead of time so they come out clearly when it matters, that has value.

The water heater situation from earlier is a fourth. I ran that one after moving apartments last year. Four days without hot water, a landlord who wasn’t returning texts, and a conversation I needed to have in person that stayed firm without burning the relationship. It’s a different landlord problem than the rent negotiation above. Same relationship, same city, completely different conversation. The generated scene had me stating the problem plainly, naming a specific timeline for the fix, and holding that line when the character in the scenario tried to change the subject. A generic “talking to your landlord” lesson can’t give you that, because a generic lesson doesn’t know your landlord hasn’t answered your texts in four days.

We also tested the feature outside Mexico City to check that the dialect grounding held up elsewhere. A scenario built around explaining symptoms to a receptionist at a clinic in Bangkok came back with the phrasing and level of formality you’d actually use there, not a direct translation of how you’d phrase it in Mexico City or Madrid. We ran the same test with a work scenario: walking a Spanish-speaking crew through a schedule change on a job site, the kind of conversation a contractor or site manager has to have constantly. The tone that works with a crew you manage isn’t the tone that works with a landlord or a dentist, and the generated conversation reflected that difference without being told to.

The Same Idea Behind Every City Page

None of this is a new philosophy for StreetTongue. It’s the same one behind why we build a separate learning experience for Mexico City Spanish instead of shipping one generic Spanish course for everyone. A lesson called “ordering at a restaurant” that works equally well in Mexico City, Madrid, and Buenos Aires is a lesson that isn’t really built for any of them. The Spanish you need to sound like you belong at a fonda in Roma Norte is not the Spanish you need at a tapas bar in Madrid. Same language, different city, different real answer.

Custom scenarios take that idea and push it one level deeper. A city specific phrase library gets you the right vocabulary for Mexico City. A custom scenario gets you the right vocabulary for your dentist, your landlord, your job, inside that city, this week. It’s the same reason a “restaurant” lesson is a starting point and not an ending point: it teaches you the shape of a conversation, not the actual conversation you’re about to have. Custom scenarios are what happens when you take the city specific idea as far as it goes, down to one person, one situation, one week.

This is also why the feature had to be built on top of everything already in the app instead of shipped as something separate. The dialect data, the pronunciation scoring, the phrase library, all of it already existed for each city StreetTongue covers. Custom scenarios draw on that same foundation instead of starting from scratch. A scenario generated for someone in Mexico City sounds like Mexico City because the underlying data behind it is Mexico City data, not generic Spanish smoothed out to work everywhere and ending up sounding like nowhere in particular.

Why This Isn’t Just ChatGPT

I know what some of you are thinking. You’re thinking: can’t I just use ChatGPT for this?

You can, sort of. You can prompt ChatGPT to generate a practice conversation. You might even get something decent.

But there are three things StreetTongue does that ChatGPT doesn’t.

First, the structure. A practice scenario isn’t just dialogue. It has goals you’re trying to accomplish, turns that progress toward a realistic outcome, and a clear end point. ChatGPT gives you chat. We give you something you can actually practice against.

Second, the dialect tuning. Telling ChatGPT “respond in Mexico City Spanish” produces something that sounds like Mexico City Spanish to someone who doesn’t live in Mexico City. Grounding the generation in our actual phrase library and cultural data produces something that sounds like Mexico City Spanish to someone who does.

Third, the integration. After you generate a scenario, you practice it in the same app where you’ve been building your pronunciation. Every line gets the same word-by-word scoring. Everything saves to the same library. You don’t leave the flow to go use another tool and come back.

Who This Is For

Honestly, this feature is for anyone who’s ever opened a language app the night before something important and not found what they needed.

It’s for the person with the job interview in a language they’re still learning. The person who needs to explain a medical situation to a specialist. The person who wants to have a real conversation on a first date instead of retreating to tourist-level phrases.

The feature is available on Pro (5 custom scenarios per month), Max (unlimited), and Lifetime (unlimited). See pricing for current rates.

If you are not sure which plan is right for you, most people start with Pro. It covers everything you need for the situations that actually come up. If you find yourself generating scenarios constantly, upgrading to Max is easy.

You can learn more at streettongueapp.com/custom-scenarios or go straight to pricing if you want to compare tiers.

The thing I wanted from a language app for years is now in the app. I’m glad it’s finally there.

Dax

  • features
  • product
  • ai
  • custom-scenarios
  • mexico-city
Follow:

More free dialect content on

Related City Guide

Mexico City Spanish: Street Phrases and Pronunciation

20+ phrases, cultural guide, and neighborhood tips

See more from us in your Google results

Found this helpful?

Comments

Loading comments...

Leave a comment

No links, no spam. Comments are reviewed before publishing.

Back to Blog

Related Posts

View All Posts »