Murf
MastraにおけるMurfの音声実装は、MurfのAI音声サービスを利用したテキスト読み上げ(TTS)機能を提供します。さまざまな言語で複数の音声に対応しています。
使用例
import { MurfVoice } from "@mastra/voice-murf";
// デフォルト設定で初期化(MURF_API_KEY 環境変数を使用)
const voice = new MurfVoice();
// カスタム設定で初期化
const voice = new MurfVoice({
speechModel: {
name: "GEN2",
apiKey: "your-api-key",
properties: {
format: "MP3",
rate: 1.0,
pitch: 1.0,
sampleRate: 48000,
channelType: "STEREO",
},
},
speaker: "en-US-cooper",
});
// デフォルト設定でテキスト読み上げ
const audioStream = await voice.speak("Hello, world!");
// カスタムプロパティでテキスト読み上げ
const audioStream = await voice.speak("Hello, world!", {
speaker: "en-UK-hazel",
properties: {
format: "WAV",
rate: 1.2,
style: "casual",
},
});
// 利用可能なボイスを取得
const voices = await voice.getSpeakers();
コンストラクタのパラメータ
speechModel?:
MurfConfig
= { name: 'GEN2' }
テキスト読み上げ機能のための設定
speaker?:
string
= 'en-UK-hazel'
テキスト読み上げに使用するデフォルトのボイスID
MurfConfig
name:
'GEN1' | 'GEN2'
= 'GEN2'
使用するMurfモデルの世代
apiKey?:
string
Murf APIキー。指定がない場合はMURF_API_KEY環境変数が使用されます
properties?:
object
すべての音声合成リクエストに対するデフォルトプロパティ
音声プロパティ
style?:
string
ボイスの話し方スタイル
rate?:
number
音声速度の倍率
pitch?:
number
ボイスのピッチ調整
sampleRate?:
8000 | 24000 | 44100 | 48000
音声のサンプルレート(Hz)
format?:
'MP3' | 'WAV' | 'FLAC' | 'ALAW' | 'ULAW'
出力音声フォーマット
channelType?:
'STEREO' | 'MONO'
音声チャンネルの構成
pronunciationDictionary?:
Record<string, string>
カスタム発音マッピング
encodeAsBase64?:
boolean
音声をbase64でエンコードするかどうか
variation?:
number
ボイスのバリエーションパラメータ
audioDuration?:
number
目標とする音声の長さ(秒)
multiNativeLocale?:
string
多言語対応のためのロケール
メソッド
speak()
Murf の API を使用してテキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキスト。ストリームが指定された場合は、最初にテキストへ変換されます。
options?:
object
音声合成のオプション
options.speaker?:
string
このリクエストのデフォルトスピーカーを上書きします
options.properties?:
object
このリクエストのデフォルト音声プロパティを上書きします
戻り値: Promise<NodeJS.ReadableStream>
getSpeakers()
利用可能な音声オプションの配列を返します。各ノードには以下が含まれます:
voiceId:
string
音声の一意な識別子
name:
string
音声の表示名
language:
string
音声の言語コード
gender:
string
音声の性別
listen()
このメソッドは Murf ではサポートされておらず、エラーが発生します。Murf は音声認識機能を提供していません。
重要な注意事項
- Murf APIキーが必要です。
MURF_API_KEY
環境変数で設定するか、コンストラクタで渡してください。 - サービスはデフォルトでGEN2モデルバージョンを使用します。
- 音声プロパティはコンストラクタレベルで設定でき、リクエストごとに上書き可能です。
- サービスは、フォーマット、サンプルレート、チャンネルタイプなどのプロパティを通じて幅広い音声カスタマイズに対応しています。
- 音声認識(Speech-to-text)機能には対応していません。