Soniox transcription provider for the Vercel AI SDK.
npm install @soniox/vercel-ai-sdk-providerVercel AI SDK is a library for building AI applications. This provider integrates Soniox
transcription models with the Vercel AI SDK.
``bash`
npm install @soniox/vercel-ai-sdk-provider
Set SONIOX_API_KEY in your environment or pass apiKey when creating the provider.
Get your API key from the Soniox Console.
`ts
import { soniox } from '@soniox/vercel-ai-sdk-provider';
import { experimental_transcribe as transcribe } from 'ai';
const { text } = await transcribe({
model: soniox.transcription('stt-async-v3'),
audio: new URL(
'https://soniox.com/media/examples/coffee_shop.mp3',
),
});
`
Use createSoniox to customize the provider instance:
`ts
import { createSoniox } from '@soniox/vercel-ai-sdk-provider';
const soniox = createSoniox({
apiKey: process.env.SONIOX_API_KEY,
apiBaseUrl: 'https://api.soniox.com',
});
`
Options:
- apiKey: override SONIOX_API_KEY.apiBaseUrl
- : custom API base URL. See list of regional API endpoints here.headers
- : additional request headers.fetch
- : custom fetch implementation.pollingIntervalMs
- : transcription polling interval in milliseconds. Default is 1000ms.
Per-request options are passed via providerOptions:
`ts`
const { text } = await transcribe({
model: soniox.transcription('stt-async-v3'),
audio,
providerOptions: {
soniox: {
languageHints: ['en', 'es'],
enableLanguageIdentification: true,
enableSpeakerDiarization: true,
context: {
terms: ["Soniox", "Vercel"]
},
},
},
});
Available options:
- languageHintslanguageHintsStrict
- enableLanguageIdentification
- enableSpeakerDiarization
- context
- clientReferenceId
- webhookUrl
- webhookAuthHeaderName
- webhookAuthHeaderValue
- translation
-
Check the Soniox API reference for more details.
Soniox automatically detects and transcribes speech in 60+ languages. When you know which languages are likely to appear in your audio, provide languageHints to improve accuracy by biasing recognition toward those languages.
Language hints do not restrict recognition — they only bias the model toward the specified languages, while still allowing other languages to be detected if present.
`ts`
const { text } = await transcribe({
model: soniox.transcription('stt-async-v3'),
audio,
providerOptions: {
soniox: {
languageHints: ['en', 'es'], // ISO language codes
},
},
});
For more details, see the Soniox language hints documentation.
Provide custom context to improve transcription and translation accuracy. Context helps the model understand your domain, recognize important terms, and apply custom vocabulary.
The context object supports four optional sections:
`ts``
const { text } = await transcribe({
model: soniox.transcription('stt-async-v3'),
audio,
providerOptions: {
soniox: {
context: {
// Structured key-value information (domain, topic, intent, etc.)
general: [
{ key: 'domain', value: 'Healthcare' },
{ key: 'topic', value: 'Diabetes management consultation' },
{ key: 'doctor', value: 'Dr. Martha Smith' },
],
// Longer free-form background text or related documents
text: 'The patient has a history of...',
// Domain-specific or uncommon words
terms: ['Celebrex', 'Zyrtec', 'Xanax'],
// Custom translations for ambiguous terms
translationTerms: [
{ source: 'Mr. Smith', target: 'Sr. Smith' },
{ source: 'MRI', target: 'RM' },
],
},
},
},
});
For more details, see the Soniox context documentation.
- Soniox API docs: https://soniox.com/docs
- AI SDK docs: https://ai-sdk.dev/docs