> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Sarvam Mastra の SarvamVoice クラスは、Sarvam AI モデルを使用した Text-to-Speech および Speech-to-Text 機能を提供します。 ## 使用例 ```typescript 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 ドキュメント ## 設定 ### コンストラクターオプション **speechModel** (`SarvamVoiceConfig`): Text-to-Speech 合成の設定。 (Default: `{ model: 'bulbul:v3', language: 'en-IN' }`) **speechModel.apiKey** (`string`): Sarvam API キー。未指定の場合は SARVAM\_API\_KEY 環境変数を使用します。 **speechModel.model** (`SarvamTTSModel`): Text-to-Speech 変換に使用するモデルを指定します。使用可能なオプション:bulbul:v2、bulbul:v3、bulbul:v3-beta。bulbul:v3-beta は bulbul:v3 のベータ版で、同じ Speaker カタログを共有します。注:bulbul:v1 は Sarvam によって非推奨となり、サポートされなくなりました。 **speechModel.language** (`SarvamTTSLanguage`): 音声合成の対象言語。使用可能なオプション:hi-IN、bn-IN、kn-IN、ml-IN、mr-IN、od-IN、pa-IN、ta-IN、te-IN、en-IN、gu-IN **speechModel.properties** (`object`): カスタマイズ用の追加 Voice プロパティ。 **speechModel.properties.pace** (`number`): 音声の速度を制御します。bulbul:v2(範囲:0.3~3.0)と bulbul:v3(範囲:0.5~2.0)の両方でサポートされます。 **speechModel.properties.temperature** (`number`): 生成される Voice のランダム性を制御するサンプリング温度。bulbul:v3 だけで使用できます。範囲:0.01~2.0。デフォルト:0.6。 **speechModel.properties.dict\_id** (`string`): 発音辞書 ID。bulbul:v3 だけで使用できます。 **speechModel.properties.pitch** (`number`): 音声のピッチを制御します。値が低いほど低い Voice に、値が高いほど鋭い Voice になります。bulbul:v2 だけで使用できます。範囲:-0.75~0.75。 **speechModel.properties.loudness** (`number`): 音声の大きさを制御します。bulbul:v2 だけで使用できます。範囲:0.3~3.0。 **speechModel.properties.enable\_preprocessing** (`boolean`): 英単語と数値エンティティ(数値、日付など)の正規化を有効にします。bulbul:v2 だけで使用できます。デフォルトは false です。 **speechModel.properties.speech\_sample\_rate** (`8000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000`): 音声サンプルレート(Hz)。 **speechModel.properties.output\_audio\_codec** (`'mp3' | 'wav' | 'linear16' | 'mulaw' | 'alaw' | 'opus' | 'flac' | 'aac'`): 出力音声コーデック。 **speaker** (`SarvamVoiceId`): 出力音声に使用する 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 を入れ替えて使用することはできません。 (Default: `'shubh'`) **listeningModel** (`SarvamListenOptions`): Speech-to-Text 認識の設定。 (Default: `{ model: 'saarika:v2.5', languageCode: 'unknown' }`) **listeningModel.apiKey** (`string`): Sarvam API キー。未指定の場合は SARVAM\_API\_KEY 環境変数を使用します。 **listeningModel.model** (`SarvamSTTModel`): Speech-to-Text 変換に使用するモデルを指定します。使用可能なオプション:saarika:v2.5(文字起こし)、saaras:v3(複数モード:transcribe/translate/verbatim/translit/codemix)。注:saarika:v1、saarika:v2、saarika:flash は Sarvam によって非推奨となりました。 **listeningModel.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。 **listeningModel.filetype** (`'mp3' | 'wav'`): 入力ストリームの音声形式。 **listeningModel.mode** (`SarvamSTTMode`): 動作モード。saaras:v3 モデルでだけ有効です。saarika:v2.5 では無視されます。使用可能なオプション:'transcribe'、'translate'、'verbatim'、'translit'、'codemix'。 ## メソッド ### `speak()` Sarvam の Text-to-Speech モデルを使用してテキストを音声に変換します。 **input** (`string | NodeJS.ReadableStream`): 音声に変換するテキストまたはテキストストリーム。 **options** (`Options`): 設定オプション。 **options.speaker** (`SarvamVoiceId`): 音声合成に使用する Voice ID。 戻り値:`Promise` ### `listen()` Sarvam の音声認識モデルを使用して音声を文字起こしします。 **input** (`NodeJS.ReadableStream`): 文字起こしする音声ストリーム。 **options** (`SarvamListenOptions`): 音声認識の設定オプション。 戻り値:`Promise` ### `getSpeakers()` 使用可能な Voice オプションの配列を返します。 戻り値:`Promise>` ## 注意事項 - 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 カタログがあります。