マルチチャンネルスピーチtoテキスト
マルチチャンネルスピーチtoテキスト
このガイドでは、スピーチtoテキストAPIでマルチチャンネル文字起こしモードを使用する方法を説明します。
ハウツーガイド · スピーチtoテキストの クイックスタートを完了していることを前提としています。
概要
マルチチャンネルのスピーチtoテキスト機能では、各チャンネルに異なる話者が含まれるオーディオファイルを書き起こせます。話者が別々のオーディオチャンネルに分離されている録音に特に便利で、話者ダイアライゼーションなしで、よりクリアな文字起こしを作成できます。
各チャンネルは独立して処理され、チャンネル番号に基づいて自動的に話者IDが割り当てられます(チャンネル0→speaker_0、チャンネル1→speaker_1など)。システムは入力オーディオファイルから個別のチャンネルを抽出し、並列で書き起こします。デフォルトでは、APIはチャンネルごとに1つの文字起こしを返します。代わりにすべてのチャンネルを開始時刻順に並べた1つのリストへ統合し、各単語にchannel_indexを付けた単一の文字起こしを受け取るには、multichannel_output_style=combinedを設定してください。
主なユースケース
- ステレオインタビュー録音 - 左チャンネルにインタビュアー、右チャンネルにインタビュー対象者
- マルチトラックのポッドキャスト録音 - 参加者ごとに別トラックへ録音
- コールセンター録音 - エージェントと顧客を別チャンネルに分離
- 会議録音 - 各参加者を別チャンネルに分離
- 法廷手続き - 複数の当事者を異なるチャンネルに録音
要件
- APIキーを持つElevenLabsアカウント
- マルチチャンネルオーディオファイル(WAV、MP3、またはその他の対応形式)
- オーディオファイルあたり最大5チャンネル
- 各チャンネルには1人の話者のみを含めること
仕組み
マルチチャンネルオーディオを準備する
オーディオファイル内で話者が別々のチャンネルに分離されていることを確認してください。マルチチャンネル機能は最大5チャンネルに対応しており、各チャンネルは特定の話者にマッピングされます。
- チャンネル0→
speaker_0 - チャンネル1→
speaker_1 - チャンネル2→
speaker_2 - チャンネル3→
speaker_3 - チャンネル4→
speaker_4
APIパラメーターを設定する
スピーチtoテキストリクエストを送信する際は、以下を設定する必要があります。
use_multi_channel:truediarize:false(マルチチャンネルモードでは、チャンネルを介して話者を分離します)
必要に応じて、次の設定でレスポンス形式を制御できます。
multichannel_output_style:separate(デフォルト)は、チャンネルごとに1つの文字起こしを返します。combinedはすべてのチャンネルを、開始時刻順に並べた単一の文字起こしへ統合します。各単語にはchannel_indexが付与され、標準のシングルチャンネルレスポンス形式と一致します。combinedにはタイムスタンプが必要です(timestamps_granularityをnone以外にする必要があります)。Webhook配信、エンティティ検出、または編集との併用はサポートされていません。
話者数はチャンネル数によって自動的に決定されるため、マルチチャンネルモードではnum_speakersパラメーターを使用できません。マルチチャンネルモードでは、各チャンネルに話者が1人だけいることを前提としています。複数の話者がいる場合、そのチャンネル内のすべての話者に同じ話者IDが割り当てられます。
レスポンスを処理する
デフォルト(multichannel_output_style=separate)では、マルチチャンネルオーディオはシングルチャンネルとは異なるレスポンス形式を返します。
use_multi_channel: trueを設定していても、シングルチャンネル(モノラル)のオーディオファイルを指定した場合は、
マルチチャンネル形式ではなく、標準のシングルチャンネルレスポンスを受け取ります。マルチチャンネルレスポンス
形式が返されるのは、オーディオファイルに実際に複数のチャンネルが含まれている場合のみです。
multichannel_output_style=combinedでは、レスポンスはシングルチャンネルの文字起こしと同じフラットな形式(トップレベルのtextとwords、transcripts配列なし)になり、すべてのチャンネルが開始時刻順に並べられた1つのリストへ統合されます。すべての単語には、チャンネルを識別するchannel_index(およびspeaker_id)が含まれます。
実装
基本的なマルチチャンネル文字起こし
2人の話者がいるステレオオーディオファイルを書き起こす完全な例を示します。
会話形式の文字起こしを作成する
時系列順の会話形式の文字起こしを取得する最も簡単な方法は、multichannel_output_style=combinedをリクエストすることです。APIは開始時刻順にすでに並べられた単一のwordsリストを返し、各単語にはchannel_indexとspeaker_idが含まれます。
デフォルトのseparate出力を使用している場合は、代わりにクライアント側でチャンネルごとの文字起こしを統合できます。
マルチチャンネルでWebhookを使用する
マルチチャンネル文字起こしは、非同期処理のためのWebhook配信に対応しています。
Webhookはseparate(チャンネルごと)の形式を返します。multichannel_output_style=combinedは
現在Webhook配信ではサポートされていません。同期リクエストを使用するか、チャンネルごとの
Webhookペイロードをクライアント側で統合してください。
エラー処理
よくある検証エラー
マルチチャンネルモードでdiarize=trueを設定する
エラー:マルチチャンネルモードはダイアライゼーションをサポートしておらず、話者が発話する チャンネルに基づいて話者を割り当てます。
解決方法:マルチチャンネルモードを使用する場合は、常にdiarize=falseを設定してください。
num_speakersパラメーターを指定する
エラー:use_multi_channelが有効な場合はnum_speakersを指定できません。話者数はチャンネル数によって
自動的に決定されます。解決方法:リクエストからnum_speakers
パラメーターを削除してください。
6チャンネル以上のオーディオファイル
エラー:マルチチャンネルモードは最大5チャンネルに対応していますが、オーディオファイルにはXチャンネルが含まれています。
解決方法:最初の5チャンネルのみを処理するか、事前にオーディオを処理してチャンネル数を 減らしてください。
タイムスタンプなしで統合出力を使用する
エラー:multichannel_output_style=‘combined’にはタイムスタンプが必要です。timestamps_granularityを ‘word’または’character’に設定してください。
解決方法:統合出力では単語を時刻順に並べるため、timestamps_granularityをword
(デフォルト)またはcharacterに設定してください。
Webhookで統合出力を使用する
エラー:multichannel_output_style=‘combined’は、Webhook配信ではまだサポートされていません。
解決方法:combinedを使用する同期リクエストを送信するか、Webhook使用時はデフォルトのseparate出力を
維持し、クライアント側で統合してください。
ベストプラクティス
オーディオの準備
最適な結果を得るには:- パフォーマンス向上のため16kHzのサンプルレートを使用する - 処理前に無音または未使用の チャンネルを削除する - 各チャンネルに話者が1人だけ含まれるようにする - 可能な場合は最高品質のためにロスレス形式 (WAV)を使用する
パフォーマンスの最適化
同時実行コストはチャンネル数に比例して増加します。60秒・3チャンネルのファイルの同時実行コストは、シングルチャンネルファイルの3倍です。
次の式を使用して、マルチチャンネルオーディオの処理時間を見積もることができます。
各項目:
- = ファイルの長さ(秒)
- = チャンネル数
- = 処理速度係数(リアルタイムの約30%)
- = 固定オーバーヘッド(秒)
- = チャンネルあたりのオーバーヘッド(秒)
例:60秒のステレオファイル(2チャンネル)の場合:
メモリに関する考慮事項
大きなマルチチャンネルファイルでは、ストリーミングまたはチャンク分割を検討してください。
FAQ
オーディオに6チャンネル以上ある場合はどうなりますか?
APIはエラーを返します。APIに送信する5つのチャンネルを選択するか、APIへ送信する前に一部のチャンネルを ミックスダウンする必要があります。
マルチチャンネルモードでモノラルオーディオを処理できますか?
はい、できますが不要です。use_multi_channel=trueを指定してモノラルオーディオを送信すると、
マルチチャンネル形式ではなく標準のシングルチャンネルレスポンスを受け取ります。
チャンネルごとに別々の文字起こしではなく、1つに統合された文字起こしを取得できますか?
はい。multichannel_output_style=combinedを設定すると、すべてのチャンネルを統合し、開始時刻順に並べた
単一の文字起こしを受け取れます。各単語にはchannel_indexが付加されます。これは標準の
シングルチャンネルレスポンス形式と一致します。タイムスタンプが必要で、Webhook
配信では使用できません。
話者IDはどのように割り当てられますか?
話者IDはチャンネル番号に基づいて決定されます。チャンネル0はspeaker_0、チャンネル1は speaker_1というように割り当てられます。
チャンネルごとに異なる言語を使用できますか?
はい。各チャンネルは独立して処理されるため、異なる言語を検出できます。言語検出はチャンネルごとに
行われます。multichannel_output_style=combinedでは、トップレベルの
language_codeは最も確信度の高いチャンネルを反映しますが、各単語には引き続き
channel_indexが含まれます。