Mistral
MistralVoice クラスは、Mistral の Voxtral 音声モデルを使用した Text-to-Speech および Speech-to-Text 機能を提供します。バッファリングとストリーミングによる TTS、ダイアライゼーション付きのバッチ文字起こし、参照音声による Voice クローニングをサポートします。
使用例使用例への直接リンク
import { MistralVoice } from '@mastra/voice-mistral'
const voice = new MistralVoice()
// Text-to-speech
const audioStream = await voice.speak('Hello, how can I help you?', {
responseFormat: 'mp3',
})
// Speech-to-text
const text = await voice.listen(audioStream, {
language: 'en',
})
// List available voices
const speakers = await voice.getSpeakers()
import { MistralVoice } from '@mastra/voice-mistral'
// Initialize with specific configuration
const voice = new MistralVoice({
speechModel: {
name: 'voxtral-mini-tts-2603',
apiKey: 'your-mistral-api-key',
},
listeningModel: {
name: 'voxtral-mini-latest',
apiKey: 'your-mistral-api-key',
},
speaker: 'en_paul_neutral',
})
コンストラクターパラメーターコンストラクターパラメーターへの直接リンク
speechModel?:
MistralModelConfig
= { name: 'voxtral-mini-tts-2603' }
Text-to-Speech 合成の設定。
MistralModelConfig
name?:
string
音声合成に使用するモデル ID。
apiKey?:
string
Mistral API キー。未指定の場合は MISTRAL_API_KEY 環境変数を使用します。
listeningModel?:
MistralModelConfig
= { name: 'voxtral-mini-latest' }
Speech-to-Text 認識の設定。
MistralModelConfig
name?:
string
文字起こしに使用するモデル ID。固定バージョンには 'voxtral-mini-2507' を使用します。
apiKey?:
string
Mistral API キー。未指定の場合は MISTRAL_API_KEY 環境変数を使用します。
speaker?:
string
= 'en_paul_neutral'
音声合成に使用するデフォルトの Voice ID。使用可能な ID は getSpeakers() で取得します。
メソッドメソッドへの直接リンク
speak(input, options?)speakinput-optionsへの直接リンク
Mistral の Voxtral TTS モデルを使用してテキストを音声に変換します。バッファリング出力とストリーミング出力の両方をサポートします。
input:
string | NodeJS.ReadableStream
音声に変換するテキストまたはテキストストリーム。
options?:
MistralSpeakOptions
設定オプション。
MistralSpeakOptions
speaker?:
string
使用する Voice ID。コンストラクターのデフォルト値を上書きします。
responseFormat?:
'pcm' | 'wav' | 'mp3' | 'flac' | 'opus'
音声出力形式。最小レイテンシーのストリーミングには 'pcm' を使用します。
refAudio?:
string
一度限りの Voice クローニングに使用する base64 エンコード済み参照音声(最低2~3秒)。
model?:
string
この呼び出しで音声モデルを上書きします。
stream?:
boolean
ストリーミング TTS を有効にします。到着した音声チャンクが順次ストリームに書き込まれます。
戻り値:Promise<NodeJS.ReadableStream>
listen(audioStream, options?)listenaudiostream-optionsへの直接リンク
Mistral の Voxtral 文字起こしモデルを使用して音声を文字起こしします。ダイアライゼーション、コンテキストバイアス、タイムスタンプの詳細レベルをサポートします。
audioStream:
NodeJS.ReadableStream
文字起こしする音声ストリーム。
options?:
MistralListenOptions
設定オプション。
MistralListenOptions
language?:
string
言語コード(例:'en')。指定すると精度が向上します。
diarize?:
boolean
Speaker ダイアライゼーションを有効にします。
contextBias?:
string[]
語彙を導く単語またはフレーズ。
timestampGranularities?:
('segment' | 'word')[]
文字起こしセグメントのタイムスタンプ詳細レベル。
filetype?:
string
入力ストリームの音声ファイル拡張子のヒント。
戻り値:Promise<string>
getSpeakers()getspeakersへの直接リンク
Mistral Voices API から使用可能なプリセット Voice を取得します。各要素には次の値が含まれます。
voiceId:
string
Voice の一意な識別子。
name:
string
Voice の表示名。
languages?:
string[]
Voice がサポートする言語。
gender?:
string | null
Voice の性別。
getListener()getlistenerへの直接リンク
{ enabled: true } を返します。
注意事項注意事項への直接リンク
- API キーは、コンストラクターオプションまたは
MISTRAL_API_KEY環境変数で指定できます - TTS は9言語(英語、フランス語、スペイン語、ポルトガル語、イタリア語、オランダ語、ドイツ語、ヒンディー語、アラビア語)をサポートします
- STT は13言語(英語、中国語、ヒンディー語、スペイン語、アラビア語、フランス語、ポルトガル語、ロシア語、ドイツ語、日本語、韓国語、イタリア語、オランダ語)をサポートします
- 最良の結果を得るため、TTS の入力テキストは1リクエストあたり300語未満にしてください
- STT は1リクエストあたり最大3時間の音声をサポートします
refAudioによる Voice クローニングには、最低2~3秒の参照音声が必要ですgetSpeakers()は UUID 識別子を持つプリセット Voice を返します。デフォルトのen_paul_neutralは TTS エンドポイントで使用できる名前付きエイリアスですが、この一覧には含まれません