speak-hello-world
Quickly initialize a Speak AI tutoring session using the Speak SDK to demonstrate pronunciation feedback and conversation practice.
Install
mkdir -p .claude/skills/speak-hello-world && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/8274" && unzip -o skill.zip -d .claude/skills/speak-hello-world && rm skill.zipInstalls to .claude/skills/speak-hello-world
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create your first Speak AI tutoring session with pronunciation feedback.Key capabilities
- →Start a basic conversation session
- →Submit text or audio responses
- →Assess pronunciation of specific phrases
- →Retrieve session duration and vocabulary metrics
How it works
It uses the SpeakClient to initiate a session and process individual turns, providing a minimal implementation for testing API connectivity and basic interaction patterns.
Inputs & outputs
When to use speak-hello-world
- →Starting a new Speak language learning integration
- →Testing API connectivity
- →Learning basic Speak SDK interaction patterns
- →Validating pronunciation feedback implementation
About this skill
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 vocabulary: ${summary.newWords.join(', ')}`);
Output
- Working conversation session with AI tutor
- Pronunciation assessment with phoneme-level feedback
- Session summary with learning metrics
- Console output showing scores and corrections
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Session timeout | Exceeded max duration | Start a new session |
| Audio format invalid | Wrong codec or sample rate | Convert to WAV 16kHz mono |
| Language not supported | Invalid language code | Use supported codes (es, ko, ja, fr, de) |
| Low pronunciation score | Background noise | Record in a quiet environment |
| Rate limit exceeded | Too many requests | Wait and retry with backoff |
Resources
Next Steps
Proceed to speak-local-dev-loop for development workflow setup.
Examples
Text-only test: Skip audio and use text responses to test the conversation flow before integrating microphone input.
Multi-language: Start sessions in different languages by changing the language parameter to ko (Korean), ja (Japanese), or fr (French).
When not to use it
- →When production-grade error handling is required
- →When complex multi-topic state management is needed
Prerequisites
Limitations
- →Supports specific language codes like es, ko, ja, fr, de
- →Requires WAV 16kHz mono for audio assessment
How it compares
This provides a simplified boilerplate for initial integration testing compared to the full-featured core workflow.
Compared to similar skills
speak-hello-world side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| speak-hello-world (this skill) | 0 | 26d | Review | Beginner |
| twinmind-local-dev-loop | 1 | 26d | Caution | Beginner |
| write-test | 1 | 5mo | Review | Advanced |
| deepgram-hello-world | 1 | 26d | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
twinmind-local-dev-loop
jeremylongshore
Set up local development workflow with TwinMind API integration. Use when building applications that integrate TwinMind transcription, testing API calls locally, or developing meeting automation tools. Trigger with phrases like "twinmind dev setup", "twinmind local development", "twinmind API testing", "build with twinmind".
write-test
useautumn
Write integration tests for the Autumn billing system. Use when creating tests, writing test scenarios for billing/subscription features, track/check endpoints, or when the user asks about testing, test cases, or QA.
deepgram-hello-world
jeremylongshore
Create a minimal working Deepgram transcription example. Use when starting a new Deepgram integration, testing your setup, or learning basic Deepgram API patterns. Trigger with phrases like "deepgram hello world", "deepgram example", "deepgram quick start", "simple transcription", "transcribe audio".
groq-hello-world
jeremylongshore
Create a minimal working Groq example. Use when starting a new Groq integration, testing your setup, or learning basic Groq API patterns. Trigger with phrases like "groq hello world", "groq example", "groq quick start", "simple groq code".
exa-local-dev-loop
jeremylongshore
Configure Exa local development with hot reload and testing. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with Exa. Trigger with phrases like "exa dev setup", "exa local development", "exa dev environment", "develop with exa".
instantly-local-dev-loop
jeremylongshore
Configure Instantly local development with hot reload and testing. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with Instantly. Trigger with phrases like "instantly dev setup", "instantly local development", "instantly dev environment", "develop with instantly".