Sarvam
Mastra の SarvamVoice クラスは、Sarvam AI モデルを使用した Text-to-Speech および Speech-to-Text 機能を提供します。
使用例使用例への直接リンク
import { SarvamVoice } from '@mastra/voice-sarvam'
// Initialize with default configuration using environment variables
const voice = new SarvamVoice()
// Or initialize with specific configuration
const voiceWithConfig = new SarvamVoice({
speechModel: {
model: 'bulbul:v3',
apiKey: process.env.SARVAM_API_KEY!,
language: 'en-IN',
properties: {
pace: 1.0,
temperature: 0.6,
speech_sample_rate: 24000,
output_audio_codec: 'wav',
},
},
listeningModel: {
model: 'saarika:v2.5',
apiKey: process.env.SARVAM_API_KEY!,
languageCode: 'en-IN',
filetype: 'wav',
},
speaker: 'shubh', // Default voice for bulbul:v3
})
// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?')
// Convert speech to text
const text = await voice.listen(audioStream, {
filetype: 'wav',
})
Sarvam API ドキュメントSarvam API ドキュメントへの直接リンク
https://docs.sarvam.ai/api-reference-docs/text-to-speech/convert
設定設定への直接リンク
コンストラクターオプションコンストラクターオプションへの直接リンク
speechModel?:
SarvamVoiceConfig
= { model: 'bulbul:v3', language: 'en-IN' }
Text-to-Speech 合成の設定。
SarvamVoiceConfig
apiKey?:
string
Sarvam API キー。未指定の場合は SARVAM_API_KEY 環境変数を使用します。
model?:
SarvamTTSModel
Text-to-Speech 変換に使用するモデルを指定します。使用可能なオプション:bulbul:v2、bulbul:v3、bulbul:v3-beta。bulbul:v3-beta は bulbul:v3 のベータ版で、同じ Speaker カタログを共有します。注:bulbul:v1 は Sarvam によって非推奨となり、サポートされなくなりました。
language:
SarvamTTSLanguage
音声合成の対象言語。使用可能なオプション:hi-IN、bn-IN、kn-IN、ml-IN、mr-IN、od-IN、pa-IN、ta-IN、te-IN、en-IN、gu-IN
properties?:
object
カスタマイズ用の追加 Voice プロパティ。
properties.pace?:
number
音声の速度を制御します。bulbul:v2(範囲:0.3~3.0)と bulbul:v3(範囲:0.5~2.0)の両方でサポートされます。
properties.temperature?:
number
生成される Voice のランダム性を制御するサンプリング温度。bulbul:v3 だけで使用できます。範囲:0.01~2.0。デフォルト:0.6。
properties.dict_id?:
string
発音辞書 ID。bulbul:v3 だけで使用できます。
properties.pitch?:
number
音声のピッチを制御します。値が低いほど低い Voice に、値が高いほど鋭い Voice になります。bulbul:v2 だけで使用できます。範囲:-0.75~0.75。
properties.loudness?:
number
音声の大きさを制御します。bulbul:v2 だけで使用できます。範囲:0.3~3.0。
properties.enable_preprocessing?:
boolean
英単語と数値エンティティ(数値、日付など)の正規化を有効にします。bulbul:v2 だけで使用できます。デフォルトは false です。
properties.speech_sample_rate?:
8000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000
音声サンプルレート(Hz)。
properties.output_audio_codec?:
'mp3' | 'wav' | 'linear16' | 'mulaw' | 'alaw' | 'opus' | 'flac' | 'aac'
出力音声コーデック。
speaker?:
SarvamVoiceId
= 'shubh'
出力音声に使用する Speaker。デフォルトは 'shubh' です。bulbul:v3 は39種類の Voice(shubh、aditya、ritu、priya、neha、rahul、pooja、rohan、simran、kavya、amit、dev、ishita、shreya、ratan、varun、manan、sumit、roopa、kabir、aayan、ashutosh、advait、amelia、sophia、anand、tanya、tarun、sunny、mani、gokul、vijay、shruti、suhani、mohit、kavitha、rehan、soham、rupali)をサポートします。bulbul:v2 は7種類の Voice(anushka、manisha、vidya、arya、abhilash、karun、hitesh)をサポートします。モデルバージョン間で Speaker を入れ替えて使用することはできません。
listeningModel?:
SarvamListenOptions
= { model: 'saarika:v2.5', languageCode: 'unknown' }
Speech-to-Text 認識の設定。
SarvamListenOptions
apiKey?:
string
Sarvam API キー。未指定の場合は SARVAM_API_KEY 環境変数を使用します。
model?:
SarvamSTTModel
Speech-to-Text 変換に使用するモデルを指定します。使用可能なオプション:saarika:v2.5(文字起こし)、saaras:v3(複数モード:transcribe/translate/verbatim/translit/codemix)。注:saarika:v1、saarika:v2、saarika:flash は Sarvam によって非推奨となりました。
languageCode?:
SarvamSTTLanguage
入力音声の BCP-47 言語コード。saarika:v2.5 と saaras:v3 では省略可能です('unknown' を渡すと API が言語を自動検出します)。使用可能なオプション:unknown、hi-IN、bn-IN、kn-IN、ml-IN、mr-IN、od-IN、pa-IN、ta-IN、te-IN、en-IN、gu-IN。
filetype?:
'mp3' | 'wav'
入力ストリームの音声形式。
mode?:
SarvamSTTMode
動作モード。saaras:v3 モデルでだけ有効です。saarika:v2.5 では無視されます。使用可能なオプション:'transcribe'、'translate'、'verbatim'、'translit'、'codemix'。
メソッドメソッドへの直接リンク
speak()speakへの直接リンク
Sarvam の Text-to-Speech モデルを使用してテキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキストまたはテキストストリーム。
options?:
Options
設定オプション。
Options
speaker?:
SarvamVoiceId
音声合成に使用する Voice ID。
戻り値:Promise<NodeJS.ReadableStream>
listen()listenへの直接リンク
Sarvam の音声認識モデルを使用して音声を文字起こしします。
input:
NodeJS.ReadableStream
文字起こしする音声ストリーム。
options?:
SarvamListenOptions
音声認識の設定オプション。
戻り値:Promise<string>
getSpeakers()getspeakersへの直接リンク
使用可能な Voice オプションの配列を返します。
戻り値:Promise<Array<{voiceId: SarvamVoiceId}>>
注意事項注意事項への直接リンク
- API キーは、コンストラクターオプションまたは
SARVAM_API_KEY環境変数で指定できます - API キーを指定しない場合、コンストラクターはエラーをスローします
- このサービスは
https://api.sarvam.aiの Sarvam AI API と通信します - 音声はバイナリ音声データを含むストリームとして返されます
- 音声認識は mp3 および wav 音声形式をサポートします
bulbul:v1、saarika:v1、saarika:v2、saarika:flashは Sarvam によって非推奨となり、サポートされなくなりました。TTS にはbulbul:v3(またはbulbul:v2)、STT にはsaarika:v2.5(またはsaaras:v3)を使用してください。bulbul:v2とbulbul:v3の間で Speaker 名を入れ替えて使用することはできません。各モデルバージョンには固有の Speaker カタログがあります。