技能 语言学习 AI口语对话练习工作流

AI口语对话练习工作流

v20260423
speak-core-workflow-a
本工作流提供了一个基于AI的沉浸式口语对话练习系统。它能够利用先进的语言模型和实时语音API,模拟各种真实生活场景(如点餐、问路)。用户将获得即时、详细的反馈,涵盖发音评分、语法修正和词汇学习,是构建语言流利度和模拟专业家教体验的核心模块。
获取技能
132 次下载
概览

Speak Core Workflow A: AI Conversation Practice

Overview

Primary workflow for Speak: AI-powered conversation practice with real-time pronunciation feedback and adaptive tutoring. Speak uses GPT-4o for conversation generation and OpenAI's Realtime API for speech processing, delivering sub-second response times.

Prerequisites

  • Completed speak-install-auth setup
  • Valid API credentials configured
  • Audio handling capabilities (microphone or pre-recorded files)

Instructions

Step 1: Start a Conversation Session

import { SpeakClient } from '@speak/language-sdk';

const client = new SpeakClient({
  apiKey: process.env.SPEAK_API_KEY!,
  appId: process.env.SPEAK_APP_ID!,
  language: 'es',
});

// Start a restaurant ordering scenario in Spanish
const session = await client.startConversation({
  scenario: 'ordering-food',
  language: 'es',
  level: 'intermediate',
  nativeLanguage: 'en',
  maxTurns: 10,
  feedbackDetail: 'phoneme', // 'word' or 'phoneme'
});

console.log('Session started:', session.id);
console.log('AI Tutor:', session.firstPrompt.text);
// "Bienvenido al restaurante. Soy tu camarero. Que le gustaria ordenar?"

Step 2: Send Student Responses

// Submit audio for pronunciation scoring
const turn1 = await client.sendTurn(session.id, {
  audioPath: './recordings/student-response-1.wav',
});

console.log('Tutor:', turn1.tutorText);
console.log('Pronunciation:', turn1.pronunciationScore); // 0-100
console.log('Grammar:', turn1.corrections);
// [{original: "yo quiero", suggestion: "quisiera", note: "More polite form for ordering"}]
console.log('Vocabulary:', turn1.vocabularyNotes);
// ["camarero = waiter", "ordenar = to order"]

// Or submit text (skips pronunciation scoring)
const turn2 = await client.sendTurn(session.id, {
  text: 'Quisiera una ensalada y un vaso de agua, por favor.',
});

Step 3: Conversation Loop with Progress Tracking

async function runConversationLesson(
  client: SpeakClient,
  scenario: string,
  language: string,
  level: string,
) {
  const session = await client.startConversation({
    scenario, language, level, nativeLanguage: 'en',
  });

  const turns: TurnResult[] = [];
  let isComplete = false;

  while (!isComplete && turns.length < 10) {
    // Display tutor prompt
    const prompt = turns.length === 0
      ? session.firstPrompt.text
      : turns[turns.length - 1].tutorText;
    console.log(`\nTutor: ${prompt}`);

    // Get student audio (mic input or file)
    const audioPath = await recordStudentAudio();

    // Submit and get feedback
    const turn = await client.sendTurn(session.id, { audioPath });
    turns.push(turn);

    // Show feedback
    if (turn.pronunciationScore < 60) {
      console.log(`Pronunciation needs work: ${turn.pronunciationScore}/100`);
      console.log('Try again with this phrase.');
    }
    if (turn.corrections.length > 0) {
      console.log('Grammar notes:', turn.corrections.map(c => c.note).join('; '));
    }

    isComplete = turn.sessionComplete;
  }

  // End session and get summary
  const summary = await client.endSession(session.id);
  return summary;
}

Step 4: Multi-Topic Session

const topics = ['greetings', 'directions', 'ordering-food', 'shopping'];
const results: SessionSummary[] = [];

for (const topic of topics) {
  console.log(`\n=== ${topic.toUpperCase()} ===`);
  const summary = await runConversationLesson(client, topic, 'es', 'intermediate');
  results.push(summary);
  console.log(`Score: ${summary.avgPronunciationScore}/100`);
}

// Overall progress report
console.log('\n=== Session Report ===');
console.table(results.map(r => ({
  topic: r.scenario,
  pronunciation: r.avgPronunciationScore,
  grammar: r.grammarAccuracy + '%',
  newWords: r.newWords.length,
  duration: r.durationMinutes + 'min',
})));

Topic Categories

Category Scenarios Level
Daily Life greetings, introductions, weather Beginner
Travel directions, hotel, airport, transport Beginner-Intermediate
Food & Drink ordering-food, grocery, cooking Intermediate
Business meeting, presentation, negotiation Intermediate-Advanced
Social party, dating, opinions, debate Advanced

Output

  • Conversation session with AI tutor
  • Real-time pronunciation feedback (0-100 score)
  • Grammar corrections and suggestions
  • Vocabulary notes for new words
  • Session summary with progress metrics

Error Handling

Error Cause Solution
Session timeout Exceeded 30 min Auto-end with summary, start new session
Audio processing failed Invalid format Convert to WAV 16kHz mono
Tutor not responding API latency Implement 10s timeout with retry
Recognition failed Poor audio quality Prompt user to re-record in quiet environment

Resources

Next Steps

For pronunciation-focused training, see speak-core-workflow-b.

Examples

Quick test: Start a greetings scenario with level: 'beginner', send 3 text responses, end session, and review the summary scores.

Full lesson: Run 4 topics in sequence, track pronunciation improvement across topics, and generate a progress report.

信息
Category 语言学习
Name speak-core-workflow-a
版本 v20260423
大小 5.07KB
更新时间 2026-04-28
语言