Mastra における Google Voice の実装は、Google Cloud サービスを利用してテキスト読み上げ(TTS)と音声認識(STT)の両方の機能を提供します。複数の音声、言語、そして高度なオーディオ設定オプションに対応しています。
使用例
import { GoogleVoice } from "@mastra/voice-google";
// Initialize with default configuration (uses GOOGLE_API_KEY environment variable)
const voice = new GoogleVoice();
// Initialize with custom configuration
const voice = new GoogleVoice({
speechModel: {
apiKey: "your-speech-api-key",
},
listeningModel: {
apiKey: "your-listening-api-key",
},
speaker: "en-US-Casual-K",
});
// Text-to-Speech
const audioStream = await voice.speak("Hello, world!", {
languageCode: "en-US",
audioConfig: {
audioEncoding: "LINEAR16",
},
});
// Speech-to-Text
const transcript = await voice.listen(audioStream, {
config: {
encoding: "LINEAR16",
languageCode: "en-US",
},
});
// Get available voices for a specific language
const voices = await voice.getSpeakers({ languageCode: "en-US" });
コンストラクタのパラメータ
speechModel?:
GoogleModelConfig
= { apiKey: process.env.GOOGLE_API_KEY }
テキスト読み上げ機能のための設定
listeningModel?:
GoogleModelConfig
= { apiKey: process.env.GOOGLE_API_KEY }
音声認識機能のための設定
speaker?:
string
= 'en-US-Casual-K'
テキスト読み上げで使用するデフォルトの音声ID
GoogleModelConfig
apiKey?:
string
Google Cloud APIキー。設定されていない場合はGOOGLE_API_KEY環境変数が使用されます
メソッド
speak()
Google Cloud Text-to-Speech サービスを使用してテキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキスト。ストリームが指定された場合は、最初にテキストに変換されます。
options?:
object
音声合成のオプション
options.speaker?:
string
このリクエストで使用するボイスID
options.languageCode?:
string
ボイスの言語コード(例: 'en-US')。デフォルトはスピーカーIDから取得した言語コード、または 'en-US' です。
options.audioConfig?:
ISynthesizeSpeechRequest['audioConfig']
= { audioEncoding: 'LINEAR16' }
Google Cloud Text-to-Speech API の音声設定オプション
戻り値: Promise<NodeJS.ReadableStream>
listen()
Google Cloud Speech-to-Text サービスを使用して音声をテキストに変換します。
audioStream:
NodeJS.ReadableStream
文字起こしする音声ストリーム
options?:
object
認識オプション
options.stream?:
boolean
ストリーミング認識を使用するかどうか
options.config?:
IRecognitionConfig
= { encoding: 'LINEAR16', languageCode: 'en-US' }
Google Cloud Speech-to-Text API の認識設定
戻り値: Promise<string>
getSpeakers()
利用可能なボイスオプションの配列を返します。各ノードには以下が含まれます:
voiceId:
string
ボイスの一意な識別子
languageCodes:
string[]
このボイスが対応している言語コードのリスト
重要な注意事項
- Google Cloud APIキーが必要です。
GOOGLE_API_KEY
環境変数で設定するか、コンストラクタで渡してください。 - デフォルトの音声は ‘en-US-Casual-K’ に設定されています。
- テキスト読み上げと音声認識サービスの両方で、デフォルトのオーディオエンコーディングは LINEAR16 です。
speak()
メソッドは、Google Cloud Text-to-Speech API を通じて高度なオーディオ設定をサポートします。listen()
メソッドは、Google Cloud Speech-to-Text API を通じて様々な認識設定をサポートします。- 利用可能な音声は、
getSpeakers()
メソッドを使って言語コードでフィルタリングできます。