PlayAI
MastraにおけるPlayAIの音声実装は、PlayAIのAPIを利用してテキスト読み上げ機能を提供します。
使用例
import { PlayAIVoice } from "@mastra/voice-playai";
// デフォルト設定で初期化(PLAYAI_API_KEY 環境変数と PLAYAI_USER_ID 環境変数を使用)
const voice = new PlayAIVoice();
// デフォルト設定で初期化
const voice = new PlayAIVoice({
speechModel: {
name: "PlayDialog",
apiKey: process.env.PLAYAI_API_KEY,
userId: process.env.PLAYAI_USER_ID,
},
speaker: "Angelo", // デフォルトの音声
});
// 特定の音声でテキストを音声に変換
const audioStream = await voice.speak("Hello, world!", {
speaker:
"s3://voice-cloning-zero-shot/b27bc13e-996f-4841-b584-4d35801aea98/original/manifest.json", // Dexter の音声
});
コンストラクタのパラメータ
speechModel?:
PlayAIConfig
= { name: 'PlayDialog' }
テキスト読み上げ機能のための設定
speaker?:
string
= 最初に利用可能なボイスID
音声合成で使用するデフォルトのボイスID
PlayAIConfig
name?:
'PlayDialog' | 'Play3.0-mini'
= 'PlayDialog'
使用するPlayAIモデル
apiKey?:
string
PlayAIのAPIキー。指定がない場合はPLAYAI_API_KEY環境変数が使用されます
userId?:
string
PlayAIのユーザーID。指定がない場合はPLAYAI_USER_ID環境変数が使用されます
メソッド
speak()
設定された音声モデルとボイスを使用して、テキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキスト。ストリームが指定された場合は、最初にテキストへ変換されます。
options.speaker?:
string
= Constructor's speaker value
このリクエストのデフォルトスピーカーを上書きします
戻り値: Promise<NodeJS.ReadableStream>
。
getSpeakers()
利用可能なボイスオプションの配列を返します。各ノードには以下が含まれます:
name:
string
ボイスの名前
accent:
string
ボイスのアクセント(例: 'US', 'British', 'Australian')
gender:
'M' | 'F'
ボイスの性別
age:
'Young' | 'Middle' | 'Old'
ボイスの年齢カテゴリ
style:
'Conversational' | 'Narrative'
ボイスの話し方スタイル
voiceId:
string
ボイスのユニークな識別子
listen()
このメソッドはPlayAIではサポートされておらず、エラーが発生します。PlayAIは音声認識(音声からテキストへの変換)機能を提供していません。
メモ
- PlayAIの認証には、APIキーとユーザーIDの両方が必要です
- このサービスは「PlayDialog」と「Play3.0-mini」の2つのモデルを提供しています
- 各ボイスには固有のS3マニフェストIDがあり、APIコール時に使用する必要があります