ElevenLabs
MastraにおけるElevenLabsの音声実装は、ElevenLabs APIを利用して高品質なテキスト読み上げ(TTS)および音声認識(STT)機能を提供します。
使用例
import { ElevenLabsVoice } from "@mastra/voice-elevenlabs";
// デフォルト設定で初期化(ELEVENLABS_API_KEY 環境変数を使用)
const voice = new ElevenLabsVoice();
// カスタム設定で初期化
const voice = new ElevenLabsVoice({
speechModel: {
name: "eleven_multilingual_v2",
apiKey: "your-api-key",
},
speaker: "custom-speaker-id",
});
// テキスト読み上げ
const audioStream = await voice.speak("Hello, world!");
// 利用可能なスピーカーを取得
const speakers = await voice.getSpeakers();
コンストラクタのパラメーター
speechModel?:
ElevenLabsVoiceConfig
= { name: 'eleven_multilingual_v2' }
テキスト読み上げ機能のための設定。
speaker?:
string
= '9BWtsMINqrJLrRacOk9x' (Aria voice)
テキスト読み上げに使用するスピーカーのID
ElevenLabsVoiceConfig
name?:
ElevenLabsModel
= 'eleven_multilingual_v2'
使用するElevenLabsモデル
apiKey?:
string
ElevenLabsのAPIキー。指定がない場合はELEVENLABS_API_KEY環境変数が使用されます。
メソッド
speak()
設定された音声モデルとボイスを使用してテキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキスト。ストリームが指定された場合は、最初にテキストへ変換されます。
options?:
object
音声合成の追加オプション
options.speaker?:
string
このリクエストでデフォルトのスピーカーIDを上書きします
戻り値: Promise<NodeJS.ReadableStream>
getSpeakers()
利用可能なボイスオプションの配列を返します。各ノードには以下が含まれます:
voiceId:
string
ボイスの一意の識別子
name:
string
ボイスの表示名
language:
string
ボイスの言語コード
gender:
string
ボイスの性別
listen()
ElevenLabs Speech-to-Text API を使用して音声入力をテキストに変換します。
input:
NodeJS.ReadableStream
書き起こし対象の音声データを含むリーダブルストリーム
options?:
object
書き起こしの設定オプション
options オブジェクトは以下のプロパティをサポートします:
language_code?:
string
ISO言語コード(例: 'en', 'fr', 'es')
tag_audio_events?:
boolean
[MUSIC]、[LAUGHTER] などの音声イベントをタグ付けするかどうか
num_speakers?:
number
音声内で検出する話者の数
filetype?:
string
音声ファイル形式(例: 'mp3', 'wav', 'ogg')
timeoutInSeconds?:
number
リクエストのタイムアウト(秒)
maxRetries?:
number
再試行の最大回数
abortSignal?:
AbortSignal
リクエストを中断するためのシグナル
戻り値: Promise<string>
- 書き起こされたテキストを解決する Promise
重要な注意事項
- ElevenLabsのAPIキーが必要です。
ELEVENLABS_API_KEY
環境変数で設定するか、コンストラクタに渡してください。 - デフォルトのスピーカーはAria(ID: ‘9BWtsMINqrJLrRacOk9x’)に設定されています。
- ElevenLabsでは音声からテキストへの機能はサポートされていません。
- 利用可能なスピーカーは、
getSpeakers()
メソッドを使用して取得できます。このメソッドは、各ボイスの言語や性別などの詳細情報を返します。