Complete Speak integration skill pack with 24 skills covering AI language learning, speech recognition, conversation practice, and education technology. Flagship tier vendor pack.
Installation
Open Claude Code and run this command:
/plugin install speak-pack@claude-code-plugins-plus
Use --global to install for all projects, or --project for current project only.
Skills (24)
GitHub Actions pipeline for Speak integrations with mocked API tests and audio validation.
Speak CI Integration
Overview
GitHub Actions pipeline for Speak integrations with mocked API tests and audio validation.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure ci integration for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_ci_integration_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak ci integration
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// CI test with mocked responses
async function runCITests() {
const mockClient = new MockSpeakClient();
await mockClient.assessPronunciation({ audioPath: "test.wav", targetText: "hello", language: "en" });
console.log("CI tests passed");
}
Step 3: Verification
npm test
Output
- Speak CI Integration configured and verified
- CI pipeline with mocked Speak API tests
- Error handling and monitoring in place
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify SPEAKAPIKEY |
| 429 Rate Limited | Too many requests | Implement backoff |
| Connection timeout | Network issue | Check connectivity to api.speak.com |
| Audio format error | Wrong codec | Convert to WAV 16kHz mono |
Resources
Next Steps
For deployment, see speak-deploy-integration.
Examples
Basic: Apply ci integration with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Diagnose and fix common Speak API errors: authentication failures, audio format issues, rate limits, and session management problems.
Speak Common Errors
Overview
Diagnose and fix common Speak API errors: authentication failures, audio format issues, rate limits, and session management problems.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- ffmpeg installed for audio processing
Instructions
Error Code Reference
| HTTP | Error Code | Description | Fix |
|---|---|---|---|
| 400 | audioformatinvalid |
Audio not WAV 16kHz mono | Convert with ffmpeg |
| 400 | audiotooshort |
Recording < 0.5 seconds | Record longer audio |
| 400 | audiotoolong |
Recording > 60 seconds | Trim to under 60s |
| 400 | languagenotsupported |
Invalid language code | Use supported codes |
| 401 | invalidapikey |
Wrong or expired key | Regenerate at dashboard |
| 403 | quota_exceeded |
Monthly limit reached | Upgrade plan or wait |
| 404 | sessionnotfound |
Invalid session ID | Start a new session |
| 408 | session_expired |
Session timed out | Sessions expire after 30 min |
| 413 | payloadtoolarge |
Audio file > 25MB | Compress or trim audio |
| 429 | ratelimitexceeded |
Too many requests | Wait Retry-After seconds |
Quick Diagnostic
# Check API key validity
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $SPEAK_API_KEY" \
https://api.speak.com/v1/languages
# 200 = valid, 401 = invalid, 403 = insufficient permissions
# Check audio format
ffprobe -v quiet -print_format json -show_streams recording.wav \
| python3 -c "import sys,json; s=json.load(sys.stdin)['streams'][0]; print(f'Rate: {s[\"sample_rate\"]}Hz, Channels: {s[\"channels\"]}')"
# Must be: Rate: 16000Hz, Channels: 1
Error Recovery Pattern
async function resilientSpeakCall<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (err: any) {
const code = err.response?.data?.error?.code;
if (code === 'audio_format_invalid') {
// Auto-convert and retry
throw new Error('Convert audio to WAV 16kHz mono before retrying');
}
if (code Execute Speak primary workflow: AI Conversation Practice with real-time feedback.
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-authsetup - 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 = awExecute Speak secondary workflow: Pronunciation Training with phoneme-level analysis.
Speak Core Workflow B: Pronunciation Training
Overview
Secondary workflow for Speak: detailed pronunciation training with phoneme-level analysis and adaptive practice. Uses OpenAI's speech recognition with Speak's proprietary proficiency graph to identify and drill weak phonemes.
Prerequisites
- Completed
speak-core-workflow-a - Audio recording capability (WAV 16kHz mono)
- ffmpeg installed for audio preprocessing
Instructions
Step 1: Pronunciation Assessment
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient({
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
language: 'es',
});
// Assess pronunciation of a specific phrase
const result = await client.assessPronunciation({
audioPath: './recordings/hola-como-estas.wav',
targetText: 'Hola, como estas?',
language: 'es',
detailLevel: 'phoneme',
});
console.log(`Overall score: ${result.score}/100`);
for (const word of result.words) {
const flag = word.score < 70 ? 'WEAK' : 'OK';
console.log(` [${flag}] "${word.text}": ${word.score}/100`);
if (word.phonemes) {
for (const p of word.phonemes.filter(p => p.score < 70)) {
console.log(` Phoneme "${p.symbol}": ${p.score} — ${p.suggestion}`);
}
}
}
Step 2: Adaptive Drill Loop
async function pronunciationDrill(
client: SpeakClient,
phrases: string[],
language: string,
targetScore: number = 80,
maxAttempts: number = 3,
) {
const weakPoints: Map<string, number[]> = new Map();
const results: DrillResult[] = [];
for (const phrase of phrases) {
let bestScore = 0;
let attempts = 0;
while (bestScore < targetScore && attempts < maxAttempts) {
const audioPath = await recordStudentAudio(phrase);
const result = await client.assessPronunciation({
audioPath, targetText: phrase, language, detailLevel: 'phoneme',
});
bestScore = Math.max(bestScore, result.score);
attempts++;
// Track weak phonemes
for (const word of result.words) {
for (const p of (word.phonemes || []).filter(p => p.score < 70)) {
const scores = weakPoints.get(p.symbol) || [];
scores.push(p.score);
weakPoints.set(p.symbol, scores);
}
}
if (result.score >= targetScore) {
console.log(`"${phrase}": PASSED (${result.score}/100, ${attempts} attempts)`);
} else if (attempts < maxAttempts) {
console.log(`"${phrase}": ${result.score}/100 — try again`);
}
}
results.push({ phrase, bestScore, attempts });
}
return { results, weakPoints };
}
Step 3: Weakness Report
Optimize Speak API costs through usage monitoring, tier selection, and efficient audio processing.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Cost Tuning
Overview
Optimize Speak API costs through usage monitoring, tier selection, and efficient audio processing.
Prerequisites
- Completed
speak-install-auth setup
- Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure cost tuning for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_cost_tuning_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak cost tuning
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// Production-ready implementation
async function setup() {
const health = await client.health.check();
console.log("Status:", health.status);
return health;
}
Step 3: Verification
curl -sf -H "Authorization: Bearer $SPEAK_API_KEY" https://api.speak.com/v1/health | jq .
Output
- Speak Cost Tuning configured and verified
- Production-ready Speak integration
- Error handling and monitoring in place
Error Handling
Error
Cause
Solution
401 Unauthorized
Invalid API key
Verify SPEAKAPIKEY
429 Rate Limited
Too many requests
Implement backoff
Connection timeout
Network issue
Check connectivity to api.speak.com
Audio format error
Wrong codec
Convert to WAV 16kHz mono
Resources
Next Steps
For production checklist, see speak-prod-checklist.
Examples
Basic: Apply cost tuning with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Handle student audio data, assessment records, and learning progress with GDPR/COPPA compliance.
Speak Data Handling
Overview
Handle student audio data, assessment records, and learning progress with GDPR/COPPA compliance.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure data handling for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_data_handling_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak data handling
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// Production-ready implementation
async function setup() {
const health = await client.health.check();
console.log("Status:", health.status);
return health;
}
Step 3: Verification
curl -sf -H "Authorization: Bearer $SPEAK_API_KEY" https://api.speak.com/v1/health | jq .
Output
- Speak Data Handling configured and verified
- Production-ready Speak integration
- Error handling and monitoring in place
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify SPEAKAPIKEY |
| 429 Rate Limited | Too many requests | Implement backoff |
| Connection timeout | Network issue | Check connectivity to api.speak.com |
| Audio format error | Wrong codec | Convert to WAV 16kHz mono |
Resources
Next Steps
For production checklist, see speak-prod-checklist.
Examples
Basic: Apply data handling with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Collect diagnostic information for Speak API issues: auth verification, audio format validation, session inspection, and network testing.
Speak Debug Bundle
Overview
Collect diagnostic information for Speak API issues: auth verification, audio format validation, session inspection, and network testing.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- ffmpeg installed for audio processing
Instructions
Current State
!node --version 2>/dev/null || echo 'N/A'
!ffmpeg -version 2>/dev/null | head -1 || echo 'ffmpeg not installed'
Step 1: Auth Diagnostic
#!/bin/bash
set -euo pipefail
echo "=== Speak Debug Bundle ==="
echo "Time: $(date -u)"
echo -e "\n--- Auth Check ---"
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $SPEAK_API_KEY" \
https://api.speak.com/v1/languages)
echo "API Key Status: HTTP $STATUS"
[ "$STATUS" = "200" ] && echo " Auth: OK" || echo " Auth: FAILED"
echo -e "\n--- Environment ---"
echo "SPEAK_API_KEY set: $([ -n \"${SPEAK_API_KEY:-}\" ] && echo 'yes' || echo 'no')"
echo "SPEAK_APP_ID set: $([ -n \"${SPEAK_APP_ID:-}\" ] && echo 'yes' || echo 'no')"
Step 2: Audio Format Validator
import { execSync } from 'child_process';
function validateAudio(filePath: string): { valid: boolean; issues: string[] } {
const issues: string[] = [];
try {
const info = JSON.parse(execSync(
`ffprobe -v quiet -print_format json -show_streams "${filePath}"`,
{ encoding: 'utf-8' }
));
const stream = info.streams[0];
if (stream.codec_name !== 'pcm_s16le') issues.push(`Codec: ${stream.codec_name} (need pcm_s16le)`);
if (parseInt(stream.sample_rate) !== 16000) issues.push(`Sample rate: ${stream.sample_rate} (need 16000)`);
if (stream.channels !== 1) issues.push(`Channels: ${stream.channels} (need 1/mono)`);
const size = parseInt(execSync(`stat -f%z "${filePath}"`, { encoding: 'utf-8' }));
if (size > 25 * 1024 * 1024) issues.push(`File too large: ${(size/1024/1024).toFixed(1)}MB (max 25MB)`);
if (size < 1000) issues.push('File too small — may be empty or corrupt');
} catch (e) {
issues.push(`Cannot read file: ${e}`);
}
return { valid: issues.length === 0, issues };
}
Step 3: Network Connectivity
echo -e "\n--- Network ---"
curl -s -o /dev/null -w "API: HTTP %{http_code} in %{time_total}s\n" \
-H "Authorization: Bearer $SPEAK_API_KEY" \
https://api.speak.com/v1/health
curl -s -o /dev/null -w "OpenAI: HTTP %{http_code} in %{time_total}s\n" \
-H "Authorization: BeareDeploy Speak language learning features to Vercel, Cloud Run, or containerized environments.
Speak Deploy Integration
Overview
Deploy Speak language learning features to Vercel, Cloud Run, or containerized environments.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure deploy integration for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_deploy_integration_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak deploy integration
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// Production-ready implementation
async function setup() {
const health = await client.health.check();
console.log("Status:", health.status);
return health;
}
Step 3: Verification
curl -sf -H "Authorization: Bearer $SPEAK_API_KEY" https://api.speak.com/v1/health | jq .
Output
- Speak Deploy Integration configured and verified
- Production-ready Speak integration
- Error handling and monitoring in place
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify SPEAKAPIKEY |
| 429 Rate Limited | Too many requests | Implement backoff |
| Connection timeout | Network issue | Check connectivity to api.speak.com |
| Audio format error | Wrong codec | Convert to WAV 16kHz mono |
Resources
Next Steps
For production checklist, see speak-prod-checklist.
Examples
Basic: Apply deploy integration with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Configure Speak for schools and organizations: SSO, teacher/student roles, class management, and usage reporting.
Speak Enterprise RBAC
Overview
Configure Speak for schools and organizations: SSO, teacher/student roles, class management, and usage reporting.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure enterprise rbac for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_enterprise_rbac_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak enterprise rbac
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// Production-ready implementation
async function setup() {
const health = await client.health.check();
console.log("Status:", health.status);
return health;
}
Step 3: Verification
curl -sf -H "Authorization: Bearer $SPEAK_API_KEY" https://api.speak.com/v1/health | jq .
Output
- Speak Enterprise RBAC configured and verified
- Production-ready Speak integration
- Error handling and monitoring in place
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify SPEAKAPIKEY |
| 429 Rate Limited | Too many requests | Implement backoff |
| Connection timeout | Network issue | Check connectivity to api.speak.com |
| Audio format error | Wrong codec | Convert to WAV 16kHz mono |
Resources
Next Steps
For production checklist, see speak-prod-checklist.
Examples
Basic: Apply enterprise rbac with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Create your first Speak AI tutoring session with pronunciation feedback.
Speak Hello World
Overview
Create your first AI tutoring session with Speak. Demonstrates conversation practice, pronunciation assessment, and real-time feedback using GPT-4o-powered tutoring.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Microphone access (optional for testing)
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 beginner Spanish lesson
const session = await client.startConversation({
scenario: 'greetings',
language: 'es',
level: 'beginner',
nativeLanguage: 'en',
});
console.log('Session ID:', session.id);
console.log('AI Tutor:', session.firstPrompt.text);
// Output: "Hola! Bienvenido a tu leccion de espanol. Como te llamas?"
console.log('Audio URL:', session.firstPrompt.audioUrl);
Step 2: Send a Student Response
// Submit text response (or audio file for pronunciation scoring)
const turn = await client.sendTurn(session.id, {
text: 'Hola, me llamo Juan. Mucho gusto.',
// Or: audioPath: './recordings/response.wav'
});
console.log('Tutor response:', turn.tutorText);
console.log('Pronunciation score:', turn.pronunciationScore); // 0-100
console.log('Grammar corrections:', turn.corrections);
// Output: [{original: "me llamo", suggestion: null, correct: true}]
console.log('Vocabulary notes:', turn.vocabularyNotes);
Step 3: Pronunciation Assessment
// Assess pronunciation of a specific phrase
const assessment = await client.assessPronunciation({
audioPath: './recordings/hola-como-estas.wav',
targetText: 'Hola, como estas?',
language: 'es',
detailLevel: 'phoneme', // 'word' or 'phoneme'
});
console.log(`Overall score: ${assessment.score}/100`);
for (const word of assessment.words) {
console.log(` "${word.text}": ${word.score}/100`);
if (word.phonemes) {
for (const p of word.phonemes.filter(p => p.score < 70)) {
console.log(` Weak phoneme: ${p.symbol} (${p.score}) - ${p.suggestion}`);
}
}
}
Step 4: End Session and Review
const summary = await client.endSession(session.id);
console.log('Session Summary:');
console.log(` Duration: ${summary.durationMinutes} min`);
console.log(` Turns: ${summary.totalTurns}`);
console.log(` Pronunciation: ${summary.avgPronunciationScore}/100`);
console.log(` Grammar: ${summary.grammarAccuracy}%`);
console.log(` New vocIncident response for Speak API outages: triage, fallback to offline mode, and recovery procedures.
Speak Incident Runbook
Overview
Incident response for Speak API outages: triage, fallback to offline mode, and recovery procedures.
Prerequisites
- Completed
speak-install-authsetup - Valid API credentials configured
- Understanding of Speak API patterns
Instructions
Step 1: Configuration
Configure incident runbook for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
// speak_incident_runbook_config.ts
const config = {
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
environment: process.env.NODE_ENV || 'development',
};
Step 2: Implementation
// Core implementation for speak incident runbook
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient(config);
// CI test with mocked responses
async function runCITests() {
const mockClient = new MockSpeakClient();
await mockClient.assessPronunciation({ audioPath: "test.wav", targetText: "hello", language: "en" });
console.log("CI tests passed");
}
Step 3: Verification
npm test
Output
- Speak Incident Runbook configured and verified
- CI pipeline with mocked Speak API tests
- Error handling and monitoring in place
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify SPEAKAPIKEY |
| 429 Rate Limited | Too many requests | Implement backoff |
| Connection timeout | Network issue | Check connectivity to api.speak.com |
| Audio format error | Wrong codec | Convert to WAV 16kHz mono |
Resources
Next Steps
For deployment, see speak-deploy-integration.
Examples
Basic: Apply incident runbook with default settings for a standard Speak integration.
Production: Configure with monitoring, alerting, and team-specific language learning requirements.
Set up Speak language learning API integration and authentication.
Speak Install & Auth
Overview
Set up the Speak language learning platform integration. Speak uses OpenAI's GPT-4o and Realtime API for AI tutoring with real-time pronunciation feedback. Supports 14+ languages including Korean, Spanish, Japanese, French, and Mandarin.
Prerequisites
- Node.js 18+ or Python 3.10+
- Speak developer account with API access
- Microphone for speech input testing
Instructions
Step 1: Install Dependencies
set -euo pipefail
# Core Speak SDK
npm install @speak/language-sdk
# Audio processing dependencies
npm install openai # OpenAI Realtime API for speech
npm install fluent-ffmpeg # Audio format conversion
npm install node-record-lpcm16 # Microphone capture
Step 2: Configure Authentication
# Speak API credentials
export SPEAK_API_KEY="your-speak-api-key"
export SPEAK_APP_ID="your-app-id"
# OpenAI key for Realtime API (used by Speak for speech processing)
export OPENAI_API_KEY="your-openai-key"
# Create .env file
cat << 'EOF' >> .env
SPEAK_API_KEY=your-speak-api-key
SPEAK_APP_ID=your-app-id
OPENAI_API_KEY=your-openai-key
EOF
Step 3: Initialize the Client
// src/speak/client.ts
import { SpeakClient } from '@speak/language-sdk';
const client = new SpeakClient({
apiKey: process.env.SPEAK_API_KEY!,
appId: process.env.SPEAK_APP_ID!,
language: 'es', // Target language: es, ko, ja, fr, de, pt, zh, id
});
// Verify connection
async function verifySetup() {
const languages = await client.getLanguages();
console.log('Available languages:', languages.map(l => l.code).join(', '));
const health = await client.health.check();
console.log('API status:', health.status);
}
verifySetup();
Step 4: Configure Speech Recognition
// OpenAI Realtime API for speech-to-text (used by Speak)
import OpenAI from 'openai';
const openai = new OpenAI();
async function transcribeAudio(audioPath: string): Promise<string> {
const transcription = await openai.audio.transcriptions.create({
file: fs.createReadStream(audioPath),
model: 'whisper-1',
language: 'es', // Match target language
});
return transcription.text;
}
Step 5: Supported Languages
| Language | Code | Pronunciation | Conversation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Korean | ko | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Spanish | es | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Japanese | ja | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| French | fr | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| German | de | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Configure Speak local development with mocked tutors and audio testing.
ReadWriteEditBash(npm:*)Bash(pnpm:*)Grep
Speak Local Dev LoopOverviewSet up a fast local development workflow for Speak language learning integrations. Includes mock tutor responses for offline development, audio test fixtures, and a debug mode for scoring analysis. Prerequisites
InstructionsStep 1: Project Structure
Step 2: Mock Tutor for Offline Development
Step 3: Audio Test Fixtures
Step 4: Development Scripts
Step 5: Debug ModeMigrate between language learning platforms, import student progress, and transition from legacy speech APIs.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Migration Deep DiveOverviewMigrate between language learning platforms, import student progress, and transition from legacy speech APIs. Prerequisites
InstructionsStep 1: ConfigurationConfigure migration deep dive for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
Step 2: Implementation
Step 3: Verification
Output
Error Handling
ResourcesNext StepsFor production checklist, see ExamplesBasic: Apply migration deep dive with default settings for a standard Speak integration. Production: Configure with monitoring, alerting, and team-specific language learning requirements. Configure Speak across dev, staging, and production with separate API keys and mock modes.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Multi-Environment SetupOverviewConfigure Speak across dev, staging, and production with separate API keys and mock modes. Prerequisites
InstructionsStep 1: ConfigurationConfigure multi env setup for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
Step 2: Implementation
Step 3: Verification
Output
Error Handling
ResourcesNext StepsFor production checklist, see ExamplesBasic: Apply multi env setup with default settings for a standard Speak integration. Production: Configure with monitoring, alerting, and team-specific language learning requirements. Monitor Speak API health, assessment latency, session metrics, and pronunciation score distributions.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak ObservabilityOverviewMonitor Speak API health, assessment latency, session metrics, and pronunciation score distributions. Prerequisites
InstructionsStep 1: ConfigurationConfigure observability for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
Step 2: Implementation
Step 3: Verification
Output
Error Handling
ResourcesNext StepsFor production checklist, see ExamplesBasic: Apply observability with default settings for a standard Speak integration. Production: Configure with monitoring, alerting, and team-specific language learning requirements. Optimize Speak API latency with audio preprocessing, response caching, and connection pooling.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Performance TuningOverviewOptimize Speak API latency with audio preprocessing, response caching, and connection pooling. Prerequisites
InstructionsStep 1: ConfigurationConfigure performance tuning for your Speak integration. Speak uses OpenAI's GPT-4o for AI tutoring and Whisper for speech recognition.
Step 2: Implementation
Step 3: Verification
Output
Error Handling
ResourcesNext StepsFor production checklist, see ExamplesBasic: Apply performance tuning with default settings for a standard Speak integration. Production: Configure with monitoring, alerting, and team-specific language learning requirements. Production readiness checklist for Speak language learning integrations: auth, audio pipeline, monitoring, and compliance.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Production ChecklistOverviewProduction readiness checklist for Speak language learning integrations: auth, audio pipeline, monitoring, and compliance. Prerequisites
InstructionsAuthentication
Audio Pipeline
Rate Limiting & Performance
Monitoring & Alerting
Compliance
Verification Script
Output
Error Handling
ResourcesHandle Speak API rate limits with exponential backoff, request queuing, and optimization strategies.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Rate LimitsOverviewHandle Speak API rate limits with exponential backoff, request queuing, and optimization strategies. Prerequisites
InstructionsRate Limit Overview
Rate-Limited Client
Batch Assessment Queue
Output
Error Handling
ResourcesNext StepsFor production checklist, see ExamplesBasic: Apply reference architecture with default settings for a standard Speak integration. Production: Configure with monitoring, alerting, and team-specific language learning requirements. Production patterns for Speak language learning API: conversation sessions, pronunciation assessment, audio preprocessing, and batch operations.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak SDK PatternsOverviewProduction patterns for Speak language learning API: conversation sessions, pronunciation assessment, audio preprocessing, and batch operations. Prerequisites
InstructionsPattern 1: Conversation Session Manager
Pattern 2: Audio Preprocessor
Pattern 3: Retry with Backoff
Pattern 4: Progress TrackerSecurity best practices for Speak API keys, audio data privacy, student data protection, and COPPA/FERPA compliance.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Security BasicsOverviewSecurity best practices for Speak API keys, audio data privacy, student data protection, and COPPA/FERPA compliance. Prerequisites
InstructionsAPI Key Security
Audio Data Privacy
Student Data Protection
Security Checklist
Output
Error Handling
ResourcesNext StepsUpgrade Speak SDK versions, migrate between language learning platforms, and handle API version changes.
ReadWriteEditBash(npm:*)Bash(curl:*)Grep
Speak Upgrade & MigrationOverviewUpgrade Speak SDK versions, migrate between language learning platforms, and handle API version changes. Prerequisites
InstructionsCurrent State! Step 1: Check Current Version
Step 2: Upgrade SDK
Step 3: API Version Migration
Step 4: Platform Migration (from Duolingo/Babbel APIs)
Post-Upgrade Verification
Output
Error Handling
|