Skip to Content
リファレンス音声リファレンス: CompositeVoice | Voice Providers | Mastra ドキュメント

CompositeVoice

CompositeVoice クラスは、テキスト読み上げ(text-to-speech)や音声認識(speech-to-text)操作のために、異なる音声プロバイダーを組み合わせて利用することができます。これは、各操作ごとに最適なプロバイダーを使いたい場合に特に便利です。例えば、音声認識には OpenAI を、テキスト読み上げには PlayAI を使うといった使い方が可能です。

CompositeVoice は、Agent クラスによって内部的に使用され、柔軟な音声機能を提供します。

使用例

import { CompositeVoice } from "@mastra/core/voice"; import { OpenAIVoice } from "@mastra/voice-openai"; import { PlayAIVoice } from "@mastra/voice-playai"; // Create voice providers const openai = new OpenAIVoice(); const playai = new PlayAIVoice(); // Use OpenAI for listening (speech-to-text) and PlayAI for speaking (text-to-speech) const voice = new CompositeVoice({ input: openai, output: playai, }); // Convert speech to text using OpenAI const text = await voice.listen(audioStream); // Convert text to speech using PlayAI const audio = await voice.speak("Hello, world!");

コンストラクタのパラメータ

config:

object
複合音声サービスのための設定オブジェクト

config.input?:

MastraVoice
音声認識処理に使用する音声プロバイダー

config.output?:

MastraVoice
音声合成処理に使用する音声プロバイダー

メソッド

speak()

設定されたスピーキングプロバイダーを使用して、テキストを音声に変換します。

input:

string | NodeJS.ReadableStream
音声に変換するテキスト

options?:

object
スピーキングプロバイダーに渡されるプロバイダー固有のオプション

注意:

  • スピーキングプロバイダーが設定されていない場合、このメソッドはエラーをスローします
  • オプションは設定されたスピーキングプロバイダーにそのまま渡されます
  • 音声データのストリームを返します

listen()

設定されたリスニングプロバイダーを使用して、音声をテキストに変換します。

audioStream:

NodeJS.ReadableStream
テキストに変換する音声ストリーム

options?:

object
リスニングプロバイダーに渡されるプロバイダー固有のオプション

注意:

  • リスニングプロバイダーが設定されていない場合、このメソッドはエラーをスローします
  • オプションは設定されたリスニングプロバイダーにそのまま渡されます
  • プロバイダーによって、文字列または書き起こされたテキストのストリームのいずれかを返します

getSpeakers()

スピーキングプロバイダーから利用可能な音声のリストを返します。各ノードには以下が含まれます:

voiceId:

string
音声の一意の識別子

key?:

value
プロバイダーごとに異なる追加の音声プロパティ(例: 名前、言語)

注意:

  • スピーキングプロバイダーからのみ音声を返します
  • スピーキングプロバイダーが設定されていない場合、空の配列を返します
  • 各音声オブジェクトには少なくとも voiceId プロパティが含まれます
  • 追加の音声プロパティはスピーキングプロバイダーによって異なります