メインコンテンツへ移動

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:v1saarika:v1saarika:v2saarika:flash は Sarvam によって非推奨となり、サポートされなくなりました。TTS には bulbul:v3(または bulbul:v2)、STT には saarika:v2.5(または saaras:v3)を使用してください。
  • bulbul:v2bulbul:v3 の間で Speaker 名を入れ替えて使用することはできません。各モデルバージョンには固有の Speaker カタログがあります。