Yang Deploys Gemini 3.8 Live Voice Tutor in Three-Hour Build

Build an AI Language Tutor You Can Talk To (6 Steps) — Peter Yang

Peter Yang

Voice will become computing's primary interface, but building viable tools requires dedicating the bulk of development time to manual prompt and audio iteration rather than automated code generation.

AI-assisted summary of Build an AI Language Tutor You Can Talk To (6 Steps) — original source. Check the original for full context.

Source published:

Key ideas

  • Peter Yang demonstrates building 'Tabi', an AI-powered conversational Japanese tutor built on Gemini 3.8 Live APIs, showcasing voice as the emerging default interface for computing. (0:00)
  • The entire application was planned, designed, coded, and deployed to Vercel in approximately three hours, with two full hours dedicated entirely to iteration and curriculum refinement. (16:30)
  • During development, the AI autonomous deployment workflow preemptively introduced a passcode gate to protect live Gemini API consumption from unauthorized public usage. (14:57)
  • Yang utilized a custom open-source 'human-review' tool alongside visual spec mockups to review and annotate AI-generated specifications directly before generating code. (5:01)

Detailed notes

## Background This tutorial was published by Peter Yang on YouTube on October 5, 2026. Sponsored by Google, the video demonstrates how to build Tabi, an AI-powered Japanese language coach utilizing Gemini 3.8 Live, through a structured six-step workflow spanning conceptualization, prototyping, refinement, and web deployment.

## TL;DR Peter Yang walks through building Tabi, a personal web application that uses Google's real-time voice APIs to teach conversational travel phrases through direct dialogue and roleplay scenarios. The development process follows a six-stage methodology: brainstorming requirements with an AI assistant, generating an interactive HTML specification, assembling a functional baseline in Google Antigravity, iterating on latency and audio issues using Claude Code, shaping a 10-lesson curriculum in Markdown, and deploying the application to Vercel with automated passcode protection. Completing the project in approximately three hours, Yang emphasizes that deliberate human testing and curriculum refinement account for most of the development time and distinguish a quality tool from low-effort AI output.

## Atmosphere & style The presentation is pragmatic, energetic, and candidly builder-focused, pairing ambitious assertions about the future of voice interfaces with unvarnished, hands-on development moments. Yang maintains a lighthearted, relatable demeanor—laughing off his own Japanese pronunciation drills and self-deprecatingly revoking an exposed API key on screen—while methodically debugging microphone routing discrepancies and refining avatar art. The tutorial moves briskly from structured product planning to deep technical iterations, giving viewers the tangible impression of looking over the shoulder of a seasoned product creator who values craft over raw generation speed.

## Bulletin - [00:00](https://www.youtube.com/watch?v=GiaDdNvsadA&t=0s) Peter Yang demonstrates building 'Tabi', an AI-powered conversational Japanese tutor built on Gemini 3.8 Live APIs, showcasing voice as the emerging default interface for computing. - [16:30](https://www.youtube.com/watch?v=GiaDdNvsadA&t=990s) The entire application was planned, designed, coded, and deployed to Vercel in approximately three hours, with two full hours dedicated entirely to iteration and curriculum refinement. - [14:57](https://www.youtube.com/watch?v=GiaDdNvsadA&t=897s) During development, the AI autonomous deployment workflow preemptively introduced a passcode gate to protect live Gemini API consumption from unauthorized public usage. - [05:01](https://www.youtube.com/watch?v=GiaDdNvsadA&t=301s) Yang utilized a custom open-source 'human-review' tool alongside visual spec mockups to review and annotate AI-generated specifications directly before generating code.

## Key takeaways - [00:00](https://www.youtube.com/watch?v=GiaDdNvsadA&t=0s) Voice interactions are positioned to become the default paradigm for human-computer interaction, supported by low-latency models like Gemini 3.8 Live. - [01:18](https://www.youtube.com/watch?v=GiaDdNvsadA&t=78s) Tabi structures each language lesson into two phases: explicit phrase instruction followed by interactive scenario roleplaying. - [02:45](https://www.youtube.com/watch?v=GiaDdNvsadA&t=165s) Exploratory AI prompting before writing code helps clarify user goals, pedagogical format, and model requirements via AI-generated questions. - [02:45](https://www.youtube.com/watch?v=GiaDdNvsadA&t=165s) Personal utility apps tailored to private needs without monetization are becoming practical software projects using modern AI stacks. - [05:01](https://www.youtube.com/watch?v=GiaDdNvsadA&t=301s) Combining technical PRD specifications with interactive visual UI mockups in an HTML spec dramatically accelerates alignment prior to implementation. - [05:01](https://www.youtube.com/watch?v=GiaDdNvsadA&t=301s) The open-source 'human-review' skill lets creators edit spec copy directly and pin visual feedback for automated agent iteration. - [08:24](https://www.youtube.com/watch?v=GiaDdNvsadA&t=504s) Google Antigravity generated the functional first version of the application from the spec document in a single pass. - [08:24](https://www.youtube.com/watch?v=GiaDdNvsadA&t=504s) API secrets must be added directly into local environment files rather than pasted into AI chat windows to avoid leaks or data ingestion. - [10:09](https://www.youtube.com/watch?v=GiaDdNvsadA&t=609s) Browser automation tools in Claude Code diagnosed physical audio routing bugs and interface race conditions during live speech testing. - [10:09](https://www.youtube.com/watch?v=GiaDdNvsadA&t=609s) Custom 3D miniature diorama visuals generated through Nano Banana/Imagen provided bespoke thematic consistency across all lesson cards. - [12:28](https://www.youtube.com/watch?v=GiaDdNvsadA&t=748s) Focusing language curriculum on phonetic conversational fluency rather than reading or writing Japanese scripts streamlines practical travel learning. - [12:28](https://www.youtube.com/watch?v=GiaDdNvsadA&t=748s) High craft in AI software development is defined by hands-on iteration, manual playtesting, and curriculum tuning rather than one-shot generation. - [14:57](https://www.youtube.com/watch?v=GiaDdNvsadA&t=897s) Deploying conversational voice apps to production requires safeguards like passcode gating to prevent unbounded live API token expenses.

## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=GiaDdNvsadA&t=0s) Introduction: Voice Interfaces and the Six-Step Roadmap

Peter Yang opens with a bold thesis: "I think voice is going to become the default way that we all interact with computers soon." To demonstrate what this looks like in practice, he introduces **Tabi**, an AI language coach designed to teach Japanese through live conversation. After a brief, upbeat musical preview of the app in action, he lays out the exact six-step roadmap he will use to build the app from scratch:

```mermaid flowchart LR accTitle: Six-Step AI App Building Roadmap subgraph Phase1["Planning & Design"] S1["1. Explore idea with AI"] --> S2["2. Draft spec & design"] end subgraph Phase2["Development & Iteration"] S3["3. Build first version"] --> S4["4. Improve the app"] S4 --> S5["5. Improve the lessons"] end subgraph Phase3["Deployment"] S6["6. Launch"] end Phase1 --> Phase2 --> Phase3 ```

The video is sponsored by Google, and the project leans heavily on Google's ecosystem. Peter notes that Gemini's Live APIs are "essentially best-in-class for live speech and conversation," pointing to a benchmark chart to back up the claim.

- **Conversation engine:** Gemini Live APIs (Gemini 3.8 Live) - **Scene artwork:** Nano Banana - **Development tools:** Google Antigravity and Claude Code

[01:18](https://www.youtube.com/watch?v=GiaDdNvsadA&t=78s) Quick Tour: A Live Japanese Lesson with Yuki

Before diving into the code, Peter gives a quick tour of the finished application. The home screen features a path of 10 lessons, and expanding any lesson reveals custom diorama artwork representing that scenario. To show how the voice interaction feels, he initiates a live call for Lesson 1 with **Yuki**, the AI language coach.

Yuki immediately greets him and breaks down how to say "good morning" in Japanese, explaining that it is a set greeting where you add *gozaimasu* to make it polite (*Ohayou gozaimasu*). After Peter repeats the phrase, Yuki praises him ("Perfect") and offers a helpful pronunciation tip: "every vowel in Japanese always sounds the same." She then walks him through saying "yes" ("just one syllable: *Hai*"). Once the vocabulary drill wraps up, Yuki pivots into roleplay mode: "Nice work. Now, let's live one day in Tokyo. I'll play everyone you meet." She immediately acts as hotel staff saying *Ohayou gozaimasu*, prompting Peter to greet her back, and then sets up a second scenario where someone is blocking the sidewalk so Peter has to politely say "excuse me."

Laughing a bit at his own pronunciation—"Okay, I'm not sure about my Japanese pronunciation, but hopefully that gives you an idea of the app that we're going to build"—Peter explains the pedagogical structure behind the app. Every lesson is intentionally split into two distinct phases, and the entire framework can easily be repurposed for any other language a traveler wants to learn: - **Phase 1 (Instruction):** The AI coach explicitly teaches all 10 phrases in the lesson one by one. - **Phase 2 (Roleplay):** The coach runs through a realistic, back-and-forth conversation scenario where the user practices those exact 10 phrases in context.

[02:45](https://www.youtube.com/watch?v=GiaDdNvsadA&t=165s) Step 1: Explore the Idea with AI Before Building Anything

When starting a new project, Peter emphasizes that it is always best to brainstorm with AI first to nail down both the user problem and the shape of the solution. He shares the exact initial prompt he used: he is traveling to Japan and wants a phone-friendly web app that teaches 100 phrases a traveler actually uses, broken down into 10 lessons of 10 phrases each. Because he previously built an app called **Tastemaker** (which tracks movie and TV tastes) and loved its styling and aesthetics, he instructs the AI to inspect Tastemaker and copy its look and feel. He also specifies the core screens—a journey/path screen tracking progress across the 10 lessons, and a lesson screen featuring text bubbles and a call button for live voice—along with the required Google tech stack (Gemini's best voice/audio models and Nano Banana for scene images). Crucially, he ends his prompt with a strict guardrail: "don't build anything yet. Do some research first and ask me three questions to clarify things."

The AI follows instructions, researching the Tastemaker aesthetic and looking up the latest Gemini models—identifying Google's new live voice model for real-time calls, a separate text-to-speech model for tapping individual speech bubbles to hear them read aloud, and Nano Banana for image generation. It then returns three clarifying questions, which Peter answers to lock in the product direction:

| AI's Clarifying Question | Peter's Product Decision | |:--- |:--- | | **1. What should a live call feel like?** | First have a coach teach the 10 phrases, then roleplay back and forth to practice. | | **2. How should each phrase bubble be written?** | Include all three formats: Japanese script, Romaji, and English. | | **3. Who will use the app?** | Just Peter and a few friends (a personal app, no monetization planned since Gemini API calls cost money). |

Peter highlights this last point as a major trend in modern software creation: "You can build personal apps like this. They're just very useful for solving your own problems."

[05:01](https://www.youtube.com/watch?v=GiaDdNvsadA&t=301s) Step 2: Draft a Spec with Key Screen Designs

Moving to Step 2, Peter uses his custom **spec skill** to generate both a written product specification and two or three key visual screen mockups. He explains that while his spec skill originally only produced a traditional, text-heavy Product Requirements Document (PRD) like a typical product manager would write, he recently updated it to generate visual mockups alongside the text. Because he works without a dedicated designer, having immediate visual blocks to react to makes it dramatically easier to understand what the app will actually feel like.

Opening the generated `spec.html` file in the browser, Peter shows how the layout pairs interactive phone screen mockups on the left with detailed product requirements, tech stack choices, and API specifications in the right-hand rail. After prompting the AI to also include desktop layouts and an onboarding flow, he toggles the view to show clean desktop designs for Onboarding, the Path view, and the Lesson view.

To refine the document further without tedious re-prompting, he runs his open-source **human-review skill** (`human-review spec.html`). This tool wraps the HTML spec in a Google Docs-style interface complete with a feedback panel, allowing two types of interaction: - **Direct text and UI editing:** Peter clicks directly into the spec's text and mockup headers to rewrite copy on the fly—for instance, typing "Peter needs 100 travel phrases practiced out loud for a trip. Package it into 10 lessons with 10 phrases each," and changing a mockup title directly to "Phrases for Japan." - **Contextual AI comments:** He highlights a specific UI box on the mockup, leaves a comment saying, "Hey, update this lesson to talk about food instead," and clicks a button to send all compiled edits and comments straight back to the AI agent to execute.

Peter also shares how viewers can get these workflow tools for themselves: - **Human-Review Skill (Free / Open Source):** Available on his GitHub (`github.com/petergyang/human-review`). Users simply copy the repository link, paste it into their favorite AI harness, and ask the AI to install the skill. - **Spec Skill (Paid):** Available on his portal at `behindthecraft.com`, bundled alongside 16 other custom skills, AI tool discounts, and a full personal AI course designed to set up a personal AI system in an afternoon. - **DIY Spec Skill Alternative:** For those who want to build their own version for free, Peter advises simply prompting an AI to generate an HTML page with two or three key screen mockups on the left and the product requirements and tech stack in a right-hand rail—"It might not be as nuanced as what I have here, but it's a really good start."

[08:24](https://www.youtube.com/watch?v=GiaDdNvsadA&t=504s) Step 3: Build the First Version in Google Antigravity

With a complete spec containing both visual mocks and technical requirements in hand, Step 3 is to build the initial working version of the app. For this phase, Peter switches over to **Google Antigravity**, noting that "it knows about Google's APIs the best." His prompt is dead simple: he tells Antigravity to look at the spec, see if it can build out the full app, and go ahead and do it.

Because the app relies on Google's voice APIs, it requires a Gemini API key to function. Peter walks through the exact setup and security best practices for handling the key: 1. Navigate to **Google AI Studio** (`aistudio.google.com`), click into **API keys**, and generate a new key. 2. Copy the key to a local notepad—**never** paste a secret API key directly into an AI chat window, because "who knows, maybe it'll be used for training or like it'll leak somewhere." 3. Ask Antigravity to open the project's `.env` file (the local environment file that stores secret keys) and paste the key directly into that file.

Realizing that he just showed his real key on screen while recording the tutorial, Peter laughs and snorts—"Now, since I pasted the API key in this video, let me go ahead and actually delete this API key because I don't want it to leak"—and immediately revokes it in the dashboard. With the valid key safely in the `.env` file, Antigravity successfully builds the entire first version of the app in a single shot, setting the stage for Step 4: iterating with AI to improve the app.

[10:09](https://www.youtube.com/watch?v=GiaDdNvsadA&t=609s) Step 4 Continued: Bug Fixing, Audio Calibration, and Diorama Art

Returning to Claude Code allows the use of automated browser and computer control features to test the running application directly. During initial testing, the app fails to register spoken input because it defaults to the MacBook’s built-in microphone rather than an external dedicated microphone. Once prompted, the tool identifies the audio routing discrepancy, switches the input device, and exercises the live interface directly to confirm voice capture.

Addressing microphone capture is only the beginning of an extensive feedback loop: "This is the longest phase if you care about craft and quality." Reviewing the lesson flow exposes several UX flaws. During the teaching phase, the UI displays all lesson dialogue bubbles at once instead of revealing them phrase-by-phrase as the student advances. Additionally, conversational response times are sluggish. Claude Code works through this list, patching UI race conditions and latency issues.

Attention then shifts to visual polish. Rather than relying on generic placeholder assets, the development environment (switching back to Google Antigravity) is instructed to generate custom illustrations using Gemini's Imagen/Nano Banana image model. Yang requests a miniature "diorama style" aesthetic—scenes crafted to resemble small, detailed tabletop figurines. After validating a prototype render, the model generates custom diorama backdrops for all 10 curriculum modules.

```mermaid flowchart TD accTitle: App Refinement Loop accDescr: Iterative testing and visual enhancement using Claude Code and Google Antigravity. subgraph BugFixes["Claude Code Automation"] A["Browser & Computer Use Testing"] --> B["Fix Audio Input Routing"] B --> C["Stagger Chat Bubble Reveals"] C --> D["Optimize Gemini Response Latency"] end subgraph AssetGeneration["Antigravity Visual Polish"] E["Prompt Gemini Image Model"] --> F["Generate Diorama Scene Art (10 Lessons)"] F --> G["Design Yuki Coach Avatar"] end BugFixes --> AssetGeneration ```

The AI coach avatar requires similar design adjustments. When prompted to illustrate the character Yuki, the model initially returns an onigiri (rice ball) illustration. Because Yuki uses a warm, female synthetic voice, Yang corrects the prompt to depict a friendly young woman. The resulting diorama portrait is set as Yuki’s persistent call screen profile picture. Resolving these audio, latency, and aesthetic defects requires roughly 30 minutes of targeted iteration.

- Audio fix: Redirected WebRTC/audio streams from default MacBook mic to external USB microphone. - Visual theme: 3D miniature diorama art across every lesson card. - Character design: Transitioned Yuki from an onigiri visual to an illustrated girl character.

---

[12:28](https://www.youtube.com/watch?v=GiaDdNvsadA&t=748s) Step 5: Curriculum Design and Pedagogical Content

Once the UI and voice channels are stable, focus shifts to instructional content quality. Yang notes in retrospect that curriculum planning should ideally precede UI refinement, but handles it directly inside an isolated AI chat thread dedicated strictly to content development. The prompt asks the model to structure an optimal 10-lesson conversational track tailored specifically for an upcoming trip to Japan.

The assistant initially proposes a sequence running from basic pleasantries to medical and pharmacy emergencies. Yang steps in to modify the outline: he merges lessons six and seven to streamline pacing, and objects to concluding the curriculum with hospital visits. Ending a vacation crash course on emergencies feels like a negative note, so the lessons are rearranged to conclude on an upbeat, practical interaction.

Yang questions foundational assumptions about language acquisition: "Is learning to read Japanese important to speak and be conversational?" The AI confirms that phonetic conversational fluency does not require mastering written kanji, hiragana, or katakana, allowing the curriculum to focus entirely on listening comprehension and spoken romaji. The finalized lessons are exported to a central Markdown document containing instructional flows, target vocabulary, and coach system prompts.

Yang notes that distinguishing a serious tool from "a vibe coded slop app" comes down to running through the lessons personally, learning the phrases firsthand, identifying confusing conversational branches, and bringing in friends for beta testing.

- Curriculum structure: 10 situational travel scenarios prioritized for real-world utility over grammar rules. - Pedagogical philosophy: Prioritizes conversational speaking and listening speed over reading/writing scripts. - Source of truth: A structured Markdown curriculum containing dialogue scripts, situational vocabulary, and Yuki's tutor guidelines.

---

[14:57](https://www.youtube.com/watch?v=GiaDdNvsadA&t=897s) Step 6: Launching Tabi on Vercel

With the lessons finalized and the local prototype fully functional, the build moves to Step 6: public deployment. While alternatives like Google AI Studio's hosting features are available, Yang chooses Vercel to consolidate hosting across existing projects. Because the environment is connected to the deployment CLI, launching requires only the natural language instruction: `deploy the app to Vercel`.

The automated deployment takes roughly five minutes. During the build process, the AI detects and resolves an incompatible, outdated dependency before pushing the production bundle live. On the resulting public web build, the app boots directly to the coach screen: "Hey everyone, I'm Yuki. Let's get you ready for Japan."

```mermaid flowchart LR accTitle: Vercel Deployment Flow accDescr: The automated push from local development to production hosting on Vercel. A["Natural Language Deploy Prompt"] --> B["Dependency Audit & Package Fixes"] B --> C["Vercel Production Build"] C --> D["Production Deployment with Auto Passcode Gate"] ```

Because every spoken turn incurs a live Gemini API consumption cost, the agent autonomously inserts a passcode gate on the landing page without being explicitly asked. This security measure keeps the public URL protected from unauthorized API traffic. With the baseline architecture live, the web app can be extended to include persistent user logins, alternative teacher personas, or adaptations for other foreign languages like Italian or Spanish.

- Hosting provider: Vercel (free tier for hobby builds). - Deployment duration: Approximately 5 minutes. - Unprompted security implementation: Automatic passcode authentication to shield Gemini API credits.

---

[16:30](https://www.youtube.com/watch?v=GiaDdNvsadA&t=990s) Recap and Final Thoughts

Yang reviews the end-to-end framework used to create Tabi across six distinct stages:

```mermaid flowchart LR accTitle: Six Step AI App Development Workflow accDescr: The complete 6-stage lifecycle from initial exploration to production launch. S1["1. Explore Idea"] --> S2["2. Spec & Design"] S2 --> S3["3. Build MVP"] S3 --> S4["4. Iterate App UI/Voice"] S4 --> S5["5. Refine Curriculum"] S5 --> S6["6. Launch & Host"] ```

The entire build took approximately three hours from initial prompt to live production link. Notably, two of those three hours were spent strictly on Steps 4 and 5—iterating, testing audio flows, and refining lesson quality. Iteration is the determining factor that separates low-effort generation from a polished product.

Looking ahead, Yang underscores that voice will soon become the primary interface between humans and computers. Developers can explore these voice patterns using Google's Gemini 3.8 Live documentation, configure access keys via Google AI Studio, and adopt open tools like the `human-review` repository to build specialized foreign language coaches for any destination.

- Total development time: ~3 hours (~2 hours dedicated entirely to prompt/code iteration). - Core technologies: Gemini 3.8 Live API, Google AI Studio, Claude Code, Google Antigravity, Vercel. - Open resources: GitHub human-review skill and behindthecraft.com product templates.

## Notable quotes > [00:00](https://www.youtube.com/watch?v=GiaDdNvsadA&t=0s) I think voice is going to become the default way that we all interact with computers soon. — Peter Yang

> [01:18](https://www.youtube.com/watch?v=GiaDdNvsadA&t=78s) Nice work. Now, let's live one day in Tokyo. I'll play everyone you meet. — Yuki

> [01:18](https://www.youtube.com/watch?v=GiaDdNvsadA&t=78s) Okay, I'm not sure about my Japanese pronunciation, but hopefully that gives you an idea of the app that we're going to build — Peter Yang

> [02:45](https://www.youtube.com/watch?v=GiaDdNvsadA&t=165s) don't build anything yet. Do some research first and ask me three questions to clarify things. — Peter Yang

> [02:45](https://www.youtube.com/watch?v=GiaDdNvsadA&t=165s) You can build personal apps like this. They're just very useful for solving your own problems. — Peter Yang

> [05:01](https://www.youtube.com/watch?v=GiaDdNvsadA&t=301s) It might not be as nuanced as what I have here, but it's a really good start. — Peter Yang

> [08:24](https://www.youtube.com/watch?v=GiaDdNvsadA&t=504s) Now, since I pasted the API key in this video, let me go ahead and actually delete this API key because I don't want it to leak — Peter Yang

> [10:09](https://www.youtube.com/watch?v=GiaDdNvsadA&t=609s) This is the longest phase if you care about craft and quality. — Peter Yang

> [12:28](https://www.youtube.com/watch?v=GiaDdNvsadA&t=748s) Is learning to read Japanese important to speak and be conversational? — Peter Yang

> [14:57](https://www.youtube.com/watch?v=GiaDdNvsadA&t=897s) Hey everyone, I'm Yuki. Let's get you ready for Japan. — Yuki

## Mentioned Peter Yang, Tabi, Google, Gemini 3.8 Live, Gemini Live APIs, Nano Banana, Imagen, Google Antigravity, Claude Code, Yuki, Tastemaker, Google Docs, GitHub, human-review, Behind the Craft, Google AI Studio, MacBook, Vercel, Creator Economy

## Video description Learn more about Gemini 3.8 Live: https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-8-live-gemini-3-8-live-extended-thinking/ Get a Gemini API key in Google AI Studio: https://aistudio.google.com Get my free human-review skill: https://github.com/petergyang/human-review

I think voice is going to become the default way we talk to computers. So I built Tabi, an AI language coach that teaches you Japanese through live conversation with Gemini 3.8 Live, and in this tutorial I show you exactly how I built it in 6 steps, from exploring the idea with AI to launching it on the web. You can follow along to build a live voice language app for whatever country you're visiting next.

What I cover: (00:00) Why voice is the next way we'll use computers (00:14) What we're building: Tabi, a live AI language coach (00:40) The 6 steps to build it (01:18) Quick tour: a live Japanese lesson with Yuki (02:45) Step 1: Explore the idea with AI before building anything (05:01) Step 2: Draft a spec with key screen designs (08:24) Step 3: Build the first version in Google Antigravity (10:03) Step 4: Iterate with AI to improve the app (12:28) Step 5: Improve the lessons so you actually learn (14:57) Step 6: Launch the app on Vercel (16:30) Recap and final thoughts

This video is sponsored by Google but opinions are my own.

Copy my best AI workflows to save time and automate busywork: https://www.behindthecraft.com 🤝 Subscribe to my practical AI newsletter read by 150K+ professionals: https://creatoreconomy.so

Where to find me: X: https://x.com/petergyang LinkedIn: https://www.linkedin.com/in/petergyang/

Subscribe to this channel - more tutorials coming soon!

[Source](https://www.youtube.com/watch?v=GiaDdNvsadA)

中文简报

杨利用 Google Gemini 在三小时内部署实时语音家教 语音正有望成为计算的主要界面,但开发者必须投入数小时手动测试课程与延迟,以防止 AI 生成的应用退化为粗制滥造的产物。 Peter Yang 展示了一套完整的六步工作流程,用于构建由 Gemini Live 语音 API 驱动的实时对话式日语导师应用 Tabi。在探索概念并通过其定制规范及人工审查技能起草出交互式 HTML 规范后,他使用 Google Antigravity 生成了最初的原型。随后,他将项目的大部分时间投入到迭代麦克风路由和微缩模型视觉效果上,精心编排了纯粹专注于口语流利度的实用 10 课课程,并最终将应用部署至 Vercel,同时设置了密码防线以防止 API 费用失控。 Peter Yang 演示了如何利用结构化的六步 AI 开发框架,构建由 Gemini Live API 和 Nano Banana 微缩模型艺术图提供支持的实用语音优先日语教学 Web 应用 Tabi。 (1:18) 在生成应用代码之前,将功能需求与交互式 HTML 屏幕模型相结合,能够实现快速的视觉反馈并进行上下文提示词迭代。 (5:01) 整个开发周期耗时约三小时,其中超过两小时用于手动测试、修复音频路由以及打磨课程,而非基础代码编写。 (16:30) 部署个人多模态应用需要防御性的架构防护机制(例如自动化访问密码门禁),以防止公开的 Gemini API 使用导致费用失控。 (14:57)

Reading summary

Peter Yang asserts that voice will soon become the primary interface for personal computing, illustrating the transition by building a real-time conversational Japanese tutor using Google's Gemini Live APIs and agentic coding tools. Spec-Driven Planning and Interactive Visual Reviews (2:45) Before generating code, Yang emphasizes defining the product scope and technical constraints through structured AI brainstorming. For his travel tutor app, Tabi, he instructed the model to research aesthetic references and clarify operational details, resulting in design guardrails: a ten-lesson journey of ten phrases each, tri-format display (Japanese script, Romaji, and English), and personal-use deployment rather than commercial monetization. Rather than relying on conventional text-only PRDs, Yang used a custom spec skill to generate an interactive HTML document combining desktop and mobile wireframes with functional specifications. To modify requirements without manual re-prompting, he employed an open-source tool, `human-review`, which embeds inline commenting and direct text editing into the HTML spec. This allowed him to refine curriculum copy and UI components visually before executing technical development. Scaffolding the MVP and Automated Iteration (8:24) To transition from spec to functional code, Yang supplied the HTML specification to Google Antigravity to scaffold the entire application in a single run. Secure credential handling required routing the Gemini API key into a local `.env` file rather than exposing keys in chat context. While initial generation completed quickly, Yang notes that refining craft and handling bugs consumed the majority of the build time. Automated testing with Claude Code identified and resolved critical operational bugs, including improper audio input routing that defaulted to laptop microphones rather than dedicated hardware, and conversational latency during live speech streaming. To polish the UI beyond generic placeholders, Yang used Gemini's image models to render custom 3D tabletop diorama artwork for all ten lesson modules and updated the tutor character, Yuki, from an initial onigiri illustration into a human portrait. Curriculum Architecture Prioritizing Spoken Utility (12:28) Yang separates functional language tools from low-quality generated software by personal dogfooding and intentional instructional design. The curriculum abandons traditional reading and writing systems—such as Kanji, Hiragana, and Katakana—because spoken conversational fluency relies primarily on listening comprehension and phonetic pronunciation in Romaji. Each lesson follows a strict two-stage pedagogical framework: an instructional phase where the tutor explicitly teaches target phrases, followed by an interactive roleplay simulating realistic travel situations like ordering food or navigating hotel check-ins. Yang manually restructured AI-suggested lesson tracks to end on practical everyday conversations rather than medical emergencies, compiling the entire verified sequence into a Markdown file that acts as the tutor's system prompt. Deployment Safeguards and Operational Cost Management (14:57) Deploying the finished prototype to Vercel took roughly five minutes via command-line instructions, during which the agent detected and updated incompatible build dependencies automatically. Because live bidirectional voice streaming through Gemini Live APIs incurs ongoing operational costs per conversational turn, the AI agent autonomously installed a passcode gate on the web application's landing page. This unprompted access gate ensures public hosting does not expose personal API quotas to unauthorized traffic. Yang notes that while baseline construction is rapid, productionizing interactive voice tools requires explicit safeguards around API usage alongside personal testing. Yang concludes that creating high-quality conversational AI applications relies far more on manual iteration and testing than initial code generation: of the three hours required to build the app, two were dedicated entirely to refining UX latency, audio capture, and lesson prompts. However, scaling such applications beyond private hobby use remains constrained by per-turn voice API expenses.

Source quotes

[0:00] Peter Yang: I think voice is going to become the default way that we all interact with computers soon. [1:18] Yuki: Nice work. Now, let's live one day in Tokyo. I'll play everyone you meet. [1:18] Peter Yang: Okay, I'm not sure about my Japanese pronunciation, but hopefully that gives you an idea of the app that we're going to build [2:45] Peter Yang: don't build anything yet. Do some research first and ask me three questions to clarify things. [2:45] Peter Yang: You can build personal apps like this. They're just very useful for solving your own problems. [5:01] Peter Yang: It might not be as nuanced as what I have here, but it's a really good start. [8:24] Peter Yang: Now, since I pasted the API key in this video, let me go ahead and actually delete this API key because I don't want it to leak [10:09] Peter Yang: This is the longest phase if you care about craft and quality. [12:28] Peter Yang: Is learning to read Japanese important to speak and be conversational? [14:57] Yuki: Hey everyone, I'm Yuki. Let's get you ready for Japan.

Original transcript

[0:00] I think voice is going to become the [0:02] default way that we all interact with [0:04] computers soon. And in this video, I'm [0:06] going to show you how to build an AI [0:08] language coach that teaches you Japanese [0:11] through a live conversation. Here's how [0:13] it works. [music] [0:26] [music] All [0:31] >> [music] [0:37] [music] [0:39] >> right. So, hopefully that video got you [0:41] hyped up. And now I'm going to show you [0:43] exactly how to build this app in six [0:45] steps. Explore the idea with AI. Draft a [0:48] spec and design. Build the first [0:50] version. Improve the app. Improve the [0:53] lessons. And finally, launch. [0:56] Now, this video is sponsored by Google [0:58] because we're going to be using Gemini's [1:00] live APIs for the conversation, Nano [1:03] Banana for the art, and anti-gravity and [1:06] clock code to build the app. Gemini's [1:08] live APIs are essentially bestin class [1:12] for live speech and conversation. As you [1:14] can see from this chart, all right, let [1:17] me start by giving you a quick tour of [1:18] the app that we're going to build. So, [1:20] this is the home screen. You can see [1:21] that there is 10 lessons and you can [1:24] expand each one to see a really awesome [1:26] diarama art for each. And let's go ahead [1:29] and have a call with Yuki, our language [1:31] coach, for lesson one. Hi there. Let's [1:35] start with how you say good morning in [1:36] Japanese. It's a set greeting and we add [1:39] goas to make it polite. Listen closely. [1:43] Go. Now you try. [1:48] >> Perfect. Also remember that every vowel [1:50] in Japanese always sounds the same. [1:53] Next, here's the simplest way to say [1:55] yes. It's just one syllable. Hi. Go [1:58] ahead. [1:59] >> Hi. [2:00] >> Nice work. Now, let's live one day in [2:02] Tokyo. I'll play everyone you meet. [2:05] >> Ohio. The hotel staff said good morning. [2:08] Now say good morning back. [2:12] >> Someone is blocking the sidewalk. [2:13] Politely say excuse me. [2:16] >> Okay. Okay, I'm not sure about my [2:17] Japanese pronunciation, but hopefully [2:18] that gives you an idea of the app that [2:19] we're going to build. Basically, I [2:21] designed the lesson so that there's two [2:22] steps. One is it first teaches you all [2:25] 10 phrases in a lesson and then it kind [2:27] of runs through a, you know, real [2:30] conversation where you can go back and [2:31] forth and practice the 10 phrases again. [2:34] So, that's the quick tour and you can [2:36] also repurpose this app as you can [2:38] imagine for any other language that you [2:40] want to learn. All right, now let's get [2:42] into how to build this. Step one is to [2:46] explore the idea with AI. You know, when [2:48] you're starting a new project, it's [2:49] always good to brainstorm with AI first [2:52] to land the user problem trying to solve [2:54] and what the solution looks like, right? [2:56] So, here's a prompt that I use to start. [2:58] I'm going to Japan and I want to build a [3:00] phone friendly web app that teaches me [3:02] 100 phrases that a travel actually uses. [3:04] It should have 10 lessons with 10 [3:06] phrases each. And then, um, I built this [3:08] other app before called Tastemaker to [3:10] pick my movie and TV tastes. And I [3:13] really like kind of the styling and [3:14] aesthetics of this app. So in my prompt [3:17] here, I asked to, hey, go check out this [3:18] other app that I built and follow its [3:21] look and feel. And let's figure out the [3:23] key screens, which is the journey or [3:25] path screen showing my progress through [3:27] 10 lessons. And also a lesson screen [3:30] with the text bubbles and a call button [3:32] to turn on live voice. And I also said, [3:35] hey, I want to build this with Gemini. I [3:37] want to use nano banana for the scene [3:39] images and the best voice and audio [3:41] models that Gemini has. Okay. And very [3:44] importantly in step one I told it to [3:46] don't build anything yet. Do some [3:49] research first and ask me three [3:51] questions to clarify things. All right. [3:53] All right. So you see here that AI did [3:54] some research and uh it found the look [3:56] and feel of the tastemaker app to copy [3:59] and it also did some research on Gemini [4:01] models and it saw that uh Google [4:03] launched a new live voice model that we [4:06] can use. There's also another model for [4:09] uh tapping on each speech bubble to [4:10] listen to it. And then of course we can [4:12] use nano banana for the images. [4:15] And down here uh it asked me three [4:18] different questions. So so number one is [4:20] what should a live call feel like? And [4:22] you know my answer was first have a [4:25] coach me the 10 phrases and then role [4:27] play back and forth to practice. How [4:29] should each phrase bubble be written? [4:31] Let's do both Japanese Romani and [4:34] English. And then who will use the app? [4:37] Because this uses Gemini APIs. You know [4:39] it costs money to use this stuff. So I [4:41] don't plan to monetize this. So in the [4:42] beginning I just plan to build this for [4:44] myself and a few friends. And this is [4:46] like the whole thing about apps these [4:47] days, right? You can build personal apps [4:49] like this. They're just very useful for [4:51] solving your own problems. All right, so [4:54] that is basically step one. We kind of [4:56] explore the problem. I could go back and [4:57] forth more, but now let's move on to [5:00] step two, which is to draft a spec and [5:04] design. So for this step, I'm going to [5:07] use my spec skill to draft both the copy [5:10] of the spec and also two or three key [5:13] screens that kind of bring the app to [5:15] life. And you know my spec skill, it [5:18] used to produce just a product [5:20] requirements document that a typical [5:22] product manager makes. But since then, [5:24] I've updated it to also create a couple [5:26] of designs because I don't actually have [5:28] a designer now. So I wanted to have it [5:30] make a few blocks so that I can easily [5:32] react to it and see what it looks like. [5:35] So let's go ahead and open the spec now. [5:38] All right. So this is what the spec [5:40] scale makes, right? And you can see here [5:42] that there's a few representative [5:43] screens of what the app looks like on [5:45] the phone. And there's also the [5:47] requirements over here for the product [5:50] uh and also the text stack that we're [5:51] going to use the APIs that we're going [5:53] to call and so on and so forth. And I've [5:55] also uh given some feedback to both make [5:58] phone and desktop design. So we can [6:00] switch to desktop here. And here's the [6:02] desktop designs for onboarding the path [6:05] and the lesson. But so this is pretty [6:07] awesome. I think this is a much better [6:08] spec in my opinion than just a bunch of [6:10] requirements here. Be able to see the [6:12] designs really kind of lets me instantly [6:15] understand what the app is going to be [6:17] about the Okay, so back to my [6:19] conversation with AI. You see here that [6:20] I gave some feedback to add desktop [6:22] designs to add an onboarding screen and [6:25] let's also run my human review skill [6:27] which is open source and using that we [6:30] can actually directly edit and give [6:31] feedback on the spec. So let's go ahead [6:33] and do this human review spec.html. [6:36] All right. So this is what human review [6:37] did. It opened the spec. You can see [6:39] here there's a feedback panel here. And [6:41] here I can directly modify the text. So [6:43] I can say uh let's just say Peter needs [6:46] 100 travel phrases practice out loud for [6:48] a trip. Package it into 10 lessons with [6:53] 10 phrases each. Uh I can make direct [6:55] edits. I can also give direct feedback [6:57] on the design and edit design directly. [6:59] So here for example I can say uh phrases [7:03] for Japan, right? And I can also select [7:07] some copy or some box here and be like, [7:10] "Hey, uh, update this lesson to talk [7:13] about food instead." So essentially, [7:15] it's kind of like a Google Doc style [7:17] interface where I can either make direct [7:18] edits or give feedback to AI and just [7:21] add comment here and I can send the [7:23] feedback to get the AI agent to start [7:25] working. Now, you may be wondering where [7:28] can I get the human review and spec [7:29] skills. Well, the good news is that my [7:32] human review skill is basically open [7:33] source. So all you got to do is go to my [7:35] GitHub and I'll provide a link in [7:36] description and you can basically just [7:38] get human review. just copy this link [7:40] and paste it into, you know, favorite AI [7:42] harness and ask it to install the skill [7:45] for my spec skill that's available in my [7:48] portal behindthecraft.com [7:50] with 16 other amazing skills, a bunch of [7:53] AI tool discounts, and a full personal [7:56] AI course to help you set up your AI [8:00] personal system in an afternoon and [8:02] start taking work off your back. Now, [8:04] this one is behind a payw wall, but I [8:05] think it's totally worth it. So go check [8:07] out behindthecraft.com. [8:09] By the way, if you just want to make [8:10] your own spec scale, just ask AI to make [8:13] two or three key screen and you know [8:15] write the product requirements and text [8:17] stack in the right rail. It might not be [8:19] as nuanced as what I have here, but it's [8:21] a really good start. Okay, now let's [8:23] move on to step three, which is to build [8:26] the first version of the app. So now [8:29] that we have our spec that has, you [8:31] know, both the mocks and also the [8:33] requirements, we can just tell AI to go [8:35] build the app. So, for this one, I [8:37] decided to switch over to Google's [8:38] anti-gravity because it knows about [8:41] Google's APIs the best. And the prompt [8:43] that I gave it is just look at the spec [8:45] and see if you can build out a full app [8:48] and go ahead and do it, right? And it [8:50] started to build the app. And one very [8:52] important thing about this app is [8:53] because we're using Google's voice API, [8:56] we have to put in our Gemini API key for [8:59] the thing to work. So, so to do that, [9:01] you have to go to Google AI Studio, [9:03] which is a studio.google.com, google.com [9:05] and navigate to API keys and then create [9:08] a new API key here and then basically [9:12] copy this API key. But don't paste it [9:15] into your AI tool. Instead, paste it [9:17] into a local notepad. And then back in [9:20] anti-gravity, we want to ask it to open [9:24] the ENV file to add the API key. So, [9:27] it's going to open your end file, which [9:29] is this file with all your secret API [9:31] keys, and then paste that API key [9:33] directly into your end file. Like, you [9:35] don't want to actually paste the API key [9:36] directly into chat here because then, [9:39] you know, who knows, maybe it'll be used [9:40] for training or like it'll leak [9:42] somewhere. Want to paste it directly [9:44] into the end file for security. Okay, [9:46] very important. [9:48] Now, since I pasted the API key uh in [9:50] this video, let me go ahead and actually [9:51] delet this API key because I don't want [9:53] it to leak. [snorts] Okay. Okay, so I [9:55] paste the API key and anti-gravity [9:58] basically built the first version of the [10:00] app in one shot. And now let's move on [10:03] to step four, which is to iterate with [10:05] AI and improve the actual app. Okay, so [10:08] to improve the app, I'm going to switch [10:09] back to cloud code because it has [10:12] browser and computer use so that I can [10:13] test the app itself. And the first issue [10:16] that we had is that the app isn't [10:19] actually recognizing my voice, right? So [10:21] something did wrong with the microphone. [10:22] So, it turned out that the issue is [10:24] because uh that's listening to my [10:26] MacBook microphone, but I have this like [10:28] special microphone here that you switch [10:30] to instead. So, uh it went off and fixed [10:32] that. And as part of fixing it, you [10:35] notice that it's like actually going [10:37] through the app itself and you know [10:39] listening to the voice and seeing if [10:40] everything works. But of course, there's [10:43] going to be more feedback. You know, [10:44] this is the longest phase if you care [10:46] about craft and quality. So some more [10:48] feedback I gave it is like in the [10:49] teaching phase, why aren't the chat [10:51] bubbles updating as I learn new phrases? [10:53] It was showing all the chat bubbles at [10:55] once instead of showing them one by one, [10:56] which is confusing, right? And the [11:00] response rate seems slow and so on and [11:02] so forth. Okay, then it went off and [11:04] fixed all these bugs. So another thing [11:06] that I want to fix is that I noticed the [11:08] app was using these crappy images [11:10] instead of actually generating images [11:12] using Gemini's nanobanana model. So, I [11:15] switched back to anti-gravity and I [11:17] basically asked it to use nano banana to [11:20] replace the art with actual images and I [11:23] told it I really like the diarama style. [11:26] So, here's an example of the diarama [11:28] style. It looks like something you can [11:30] put on your desk and looks very cute. [11:32] And I reviewed it and I say, you know, [11:35] this looks great. Let's go ahead and [11:37] make similar diarama art for all 10 [11:39] lessons. And you can see the final [11:42] result in the app. You can see that [11:43] there's this like cute diarama art uh [11:46] for each scene, right? And I also asked [11:50] anti-gravity to generate a diarama image [11:54] for Yuki. So, first of all, it made a [11:57] rice ball for Yuki, which doesn't seem [11:59] quite right. So, I told it to make it [12:01] like a girl instead because Yuki has a [12:03] female voice. And you know, this looks [12:05] great, right? And then anti-gravity [12:07] basically added Yuki to the profile [12:09] picture here for calling her. Okay, so [12:13] after all that iteration and probably [12:14] took like 30 minutes of iteration, the [12:17] app looks great and everything seems to [12:19] work. Now, of course, for a language [12:21] learning app, what really matters is the [12:23] lessons themselves and the quality of [12:26] the lessons. So, let's move on to step [12:27] five, which is improving the content of [12:30] the app. I probably should have done [12:32] this step before actually uh improving [12:34] the app itself. But basically, what I [12:36] said, hey, can you think about it like [12:38] this? if you could teach me 10 lessons [12:39] on conversational Japanese phrases to [12:41] get ready for my trip, what would they [12:43] be? You know, let's talk about lessons [12:44] together, right? And it said, here's how [12:46] I teach lessons. Here's how I will [12:48] organize everything starting with [12:50] everyday phrases and ending with [12:52] pharmacies and emergencies where you [12:54] feel sick and so on. And I gave her some [12:57] feedback. Hey, let's do combine six and [12:59] seven and so on and so forth. And I [13:02] still wanted to end on a lesson on where [13:05] things go wrong, which is kind of a [13:07] downer. You know, I don't want to end on [13:09] a negative lesson. So I said, "Hey, can [13:11] you shuffle it around a bit?" And this [13:13] is what it has as the final result. Now, [13:16] I also wanted to see what it was [13:17] teaching me in each lesson. So basically [13:20] what I did was I asked you to spin up a [13:22] separate content thread. So you can see [13:25] here for my language learning project. [13:26] Now I have a separate content thread. [13:29] and let's scroll to the very top here. [13:31] So, this instruction actually came from [13:33] the other thread that I had. Um, and [13:36] then asked some questions. And then it [13:38] suggested some changes to the lessons [13:40] themselves, right? And then we went back [13:42] and forth and I said, "Hey, I want [13:45] people to get value from this app ASAP. [13:47] Is learning to read Japanese important [13:49] to speak and be conversational?" And AI [13:52] said, "No, you don't have to read [13:53] Japanese to speak it." Uh, and then we [13:55] did some more iterations down here. So [13:58] now I want to show you uh the markdown [14:00] file that basically has all the lessons, [14:02] right? So this is it. So scroll to the [14:04] top here and you can see here that these [14:06] are the actual lessons. This is how the [14:08] lesson works. Here's the script for the [14:11] coach. It looks like this is a little [14:12] bit out of date. It still thinks it's a [14:13] onigiri instead of a girl. But u down [14:16] here you have the lessons themselves and [14:18] the actual phrases that it's going to [14:19] teach you. And of course the best way to [14:21] iterate on this stuff is actually just [14:22] take the lessons. I'm learning Japanese [14:24] at the same time and I'm also trying to [14:26] improve the app, right? So again, like [14:29] what separates a vibe coded slop app [14:31] from something that's actually quality [14:33] is just how much care and attention you [14:35] pay to improving the lessons and [14:37] improving the app itself and just [14:39] iterating with AI to make it better and [14:40] better and testing it and maybe inviting [14:43] a few of your friends to test it too, [14:44] right? Again, the point of this app is [14:47] to actually teach you Japanese, not just [14:49] to vive code an app for fun. Okay. So [14:51] after all that iteration, you know, I [14:53] think the app looks pretty good. I think [14:55] it mostly works. So let me show you step [14:58] six, which is you actually launch the [14:59] app. So you can use whole bunch of [15:02] different things to uh host the app. Uh [15:04] including Google AI studio now has a [15:06] website feature. But I have all my [15:08] projects right now in Versell. Uh so I'm [15:11] going to go ahead and deploy the app to [15:12] Verscell 2. And let's go ahead and go [15:15] back here and just say deploy the app to [15:18] Verscell. [15:20] And then that's it, right? Because I've [15:22] already hooked up Versel to AI. If you [15:24] don't have this hooked up, you can [15:25] always go to Verscell and sign up for an [15:27] account and and the first couple [15:28] websites you publish is free. Uh so you [15:30] don't even have to pay any money to host [15:32] this app. Okay, so that took about 5 [15:34] minutes to deploy. I want to actually [15:36] show you the AI thought process. So [15:38] first of all, I ran into an issue where [15:40] we had some outdated libraries that I [15:42] just kind of fixed by itself. And then [15:45] uh I fixed a bunch of other stuff and [15:47] now tabby is live in this link. And here [15:50] we are. So, hey everyone, I'm Yuki. [15:52] Let's get you ready for Japan. And [15:54] notice how it even added a passcode, [15:56] right? Because we're using Gemini APIs [15:59] and you know, each API call costs a [16:01] little bit of money, it was smart enough [16:03] to actually add a passcode without me [16:04] asking it to. Um, so there you have it. [16:08] Now we have the app live on an actual [16:10] website and we can always improve it. We [16:13] can add login to it. We can set up more [16:16] lessons. We can add different coaching [16:18] personalities or modify it for other [16:21] languages. Like if I'm going to Italy [16:23] instead, it can teach me Italian and [16:25] also use Gemini Nano Banana to generate [16:27] other images. To wrap up, here are the [16:30] six steps again. First, explore your [16:32] idea with AI. Go back and forth with it. [16:35] Have it flesh out solutions, do [16:36] research, and ask you questions. Second, [16:39] draft a spec and design. Use my spec [16:42] skill if you have access to it on [16:44] behindthecraft.com. [16:45] And also use human review which is open [16:47] source and free just check out my github [16:50] uh to edit the spec yourself. And once [16:53] you have the spec and design then just [16:55] ask AI to build the first version right [16:57] which is step three. But step four is [16:59] where the real work happens which is [17:01] iterating with AI to improve the app and [17:04] also step five iterating with AI to [17:06] improve the contents. You know is this [17:07] iteration process that separates [17:10] something that's slop from something [17:11] that's actually high craft and what you [17:13] want. And I think it took me maybe like [17:15] three hours to build this app. And two [17:17] of those three hours is basically [17:19] iterating with AI to make it better and [17:21] testing it myself. Right? And the last [17:24] step is finally just to launch. You can [17:26] launch on Google AI studio, you can [17:27] launch on Versell or any other hosting [17:30] provider that you want. So to wrap up, [17:32] you know, I really do think voice is [17:34] going to be the default way that we all [17:36] interact with AI in the near future. And [17:39] if you want to learn more about Gemini's [17:42] uh live APIs, just search for Gemini 3.8 [17:45] Live and you can come across this [17:47] article. And of course, you can set up [17:50] the API key to test the stuff in Google [17:52] AI Studio. So, I hope this video will [17:55] motivate you to build your own language [17:57] learning app, whether that's for [17:58] Japanese, Chinese, Italian, Spanish, or [18:00] any other language for any other country [18:02] that you're going to visit soon. And as [18:04] always, please like and subscribe if you [18:06] enjoy these practical tutorials where I [18:09] show you how to build something step by [18:10] step. Thank you so much and see you next [18:12] time.