Skip to Content
リファレンス音声リファレンス: Sarvam Voice | Voice Providers | Mastra Docs

Sarvam

MastraのSarvamVoiceクラスは、Sarvam AIモデルを使用してテキスト読み上げと音声認識機能を提供します。

使用例

import { SarvamVoice } from "@mastra/voice-sarvam"; // 環境変数を使用してデフォルト設定で初期化 const voice = new SarvamVoice(); // または特定の設定で初期化 const voiceWithConfig = new SarvamVoice({ speechModel: { model: "bulbul:v1", apiKey: process.env.SARVAM_API_KEY!, language: "en-IN", properties: { pitch: 0, pace: 1.65, loudness: 1.5, speech_sample_rate: 8000, enable_preprocessing: false, eng_interpolation_wt: 123, }, }, listeningModel: { model: "saarika:v2", apiKey: process.env.SARVAM_API_KEY!, languageCode: "en-IN", filetype?: 'wav'; }, speaker: "meera", // デフォルトの声 }); // テキストを音声に変換 const audioStream = await voice.speak("こんにちは、どのようにお手伝いできますか?"); // 音声をテキストに変換 const text = await voice.listen(audioStream, { filetype: "wav", });

Sarvam API ドキュメント -

https://docs.sarvam.ai/api-reference-docs/endpoints/text-to-speech

設定

コンストラクタオプション

speechModel?:

SarvamVoiceConfig
= { model: 'bulbul:v1', language: 'en-IN' }
テキストから音声への合成の設定。

speaker?:

SarvamVoiceId
= 'meera'
出力音声に使用するスピーカー。指定されていない場合、デフォルトでMeeraが使用されます。利用可能なオプション - meera, pavithra, maitreyi, arvind, amol, amartya, diya, neel, misha, vian, arjun, maya

listeningModel?:

SarvamListenOptions
= { model: 'saarika:v2', language_code: 'unknown' }
音声からテキストへの認識の設定。

SarvamVoiceConfig

apiKey?:

string
Sarvam APIキー。SARVAM_API_KEY環境変数にフォールバックします。

model?:

SarvamTTSModel
= 'bulbul:v1'
テキストから音声への変換に使用するモデルを指定します。

language:

SarvamTTSLanguage
= 'en-IN'
音声合成の対象言語。利用可能なオプション: hi-IN, bn-IN, kn-IN, ml-IN, mr-IN, od-IN, pa-IN, ta-IN, te-IN, en-IN, gu-IN

properties?:

object
カスタマイズのための追加の音声プロパティ。

properties.pitch?:

number
音声のピッチを制御します。低い値はより深い声になり、高い値はより鋭くなります。適切な範囲は-0.75から0.75の間です。

properties.pace?:

number
音声の速度を制御します。低い値はより遅いスピーチになり、高い値はより速くなります。適切な範囲は0.5から2.0の間です。デフォルトは1.0です。必要な範囲: 0.3 <= x <= 3

properties.loudness?:

number
音声の音量を制御します。低い値はより静かな音声になり、高い値はより大きくなります。適切な範囲は0.3から3.0の間です。必要な範囲: 0 <= x <= 3

properties.speech_sample_rate?:

8000 | 16000 | 22050
Hz単位の音声サンプルレート。

properties.enable_preprocessing?:

boolean
英単語や数値エンティティ(例: 数字、日付)の正規化を行うかどうかを制御します。混合言語テキストの処理を改善するためにtrueに設定します。デフォルトはfalseです。

properties.eng_interpolation_wt?:

number
エンコーダーで英語スピーカーと補間するための重み。

SarvamListenOptions

apiKey?:

string
Sarvam APIキー。SARVAM_API_KEY環境変数にフォールバックします。

model?:

SarvamSTTModel
= 'saarika:v2'
音声からテキストへの変換に使用するモデルを指定します。注意:デフォルトモデルはsaarika:v2です。利用可能なオプション:saarika:v1, saarika:v2, saarika:flash

languageCode?:

SarvamSTTLanguage
= 'unknown'
入力音声の言語を指定します。このパラメータは正確な文字起こしを保証するために必要です。saarika:v1モデルでは、このパラメータは必須です。saarika:v2モデルではオプションです。unknown: 言語が不明な場合に使用します。APIが自動的に検出します。注意:saarika:v1モデルはunknown言語コードをサポートしていません。利用可能なオプション: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'
入力ストリームのオーディオ形式。

メソッド

speak()

Sarvamのテキスト読み上げモデルを使用して、テキストを音声に変換します。

input:

string | NodeJS.ReadableStream
音声に変換するテキストまたはテキストストリーム。

options.speaker?:

SarvamVoiceId
= コンストラクタのスピーカー値
音声合成に使用するボイスID。

戻り値: Promise<NodeJS.ReadableStream>

listen()

Sarvamの音声認識モデルを使用して音声を文字起こしします。

input:

NodeJS.ReadableStream
文字起こしする音声ストリーム。

options?:

SarvamListenOptions
音声認識の設定オプション。

戻り値: Promise<string>

getSpeakers()

利用可能なボイスオプションの配列を返します。

戻り値: Promise<Array<{voiceId: SarvamVoiceId}>>

メモ

  • APIキーは、コンストラクタオプションまたはSARVAM_API_KEY環境変数を介して提供できます
  • APIキーが提供されていない場合、コンストラクタはエラーをスローします
  • サービスはhttps://api.sarvam.aiでSarvam AI APIと通信します
  • オーディオはバイナリオーディオデータを含むストリームとして返されます
  • 音声認識はmp3およびwavオーディオフォーマットをサポートしています