文字起こし

ElevenLabsで音声をテキストに変換する方法を学びます。

概要

ElevenLabsのスピーチtoテキスト(STT)APIは、最先端の精度で音声をテキストに変換します。Scribe v2モデルは、90以上の言語と多様な音声スタイルにわたるテキスト上の手がかりに対応します。ライブデモは、スピーチtoテキストの紹介ページでお試しください。

HIPAA準拠が必要な企業は、Business Associate Agreement(BAA)を締結するためにElevenLabs Salesへお問い合わせください。HIPAA関連の インテグレーションや導入を進める前に、必ずこの手続きを完了してください。

モデル

APIレスポンスの例

以下は、サンプル音声ファイルにScribe v2モデルを使用したスピーチtoテキストAPIの出力例です。

{
"language_code": "en",
"language_probability": 1,
"text": "With a soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditative guides, or adding an intimate feel to your narrative projects.",
"words": [
{
"text": "With",
"start": 0.119,
"end": 0.259,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.239,
"end": 0.299,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "a",
"start": 0.279,
"end": 0.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.339,
"end": 0.499,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "soft",
"start": 0.479,
"end": 1.039,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.019,
"end": 1.2,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "and",
"start": 1.18,
"end": 1.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.339,
"end": 1.44,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "whispery",
"start": 1.419,
"end": 1.979,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.959,
"end": 2.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "American",
"start": 2.159,
"end": 2.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 2.699,
"end": 2.779,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "accent,",
"start": 2.759,
"end": 3.389,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.119,
"end": 4.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "I'm",
"start": 4.159,
"end": 4.459,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.44,
"end": 4.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "the",
"start": 4.5,
"end": 4.599,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.579,
"end": 4.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ideal",
"start": 4.679,
"end": 5.099,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.079,
"end": 5.219,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "choice",
"start": 5.199,
"end": 5.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.699,
"end": 6.099,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "for",
"start": 6.099,
"end": 6.199,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.179,
"end": 6.279,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "creating",
"start": 6.259,
"end": 6.799,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.779,
"end": 6.979,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ASMR",
"start": 6.959,
"end": 7.739,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 7.719,
"end": 7.859,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "content,",
"start": 7.839,
"end": 8.45,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9,
"end": 9.06,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "meditative",
"start": 9.04,
"end": 9.64,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9.619,
"end": 9.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "guides,",
"start": 9.679,
"end": 10.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 10.359,
"end": 10.409,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "or",
"start": 11.319,
"end": 11.439,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.42,
"end": 11.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "adding",
"start": 11.5,
"end": 11.879,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.859,
"end": 12,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "an",
"start": 11.979,
"end": 12.079,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.059,
"end": 12.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "intimate",
"start": 12.179,
"end": 12.579,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.559,
"end": 12.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "feel",
"start": 12.679,
"end": 13.159,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.139,
"end": 13.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "to",
"start": 13.159,
"end": 13.26,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.239,
"end": 13.3,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "your",
"start": 13.299,
"end": 13.399,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.379,
"end": 13.479,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "narrative",
"start": 13.479,
"end": 13.889,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.919,
"end": 13.939,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "projects.",
"start": 13.919,
"end": 14.779,
"type": "word",
"speaker_id": "speaker_0"
}
]
}

出力は次の3つのカテゴリタイプに分類されます。

  • word - 音声の言語に含まれる単語
  • spacing - 単語間のスペース。日本語、標準中国語、タイ語、ラオ語、ビルマ語、広東語など、スペースを使用しない言語には該当しません
  • audio_event - 笑い声や拍手などの非音声音

同時実行性と優先度

同時実行性とは、同時に処理できるリクエスト数のことです。

スピーチtoテキストでは、処理を高速化するため、8分を超えるファイルを内部で並列文字起こしします。音声は4つのセグメントに分割され、同時に文字起こしされます。

同時実行数の上限は、次の式で計算できます。

Concurrency=min⁡(4,round_up(audio_duration_secs480))Concurrency = \min(4, \text{round\_up}(\frac{\text{audio\_duration\_secs}}{480}))

たとえば、15分の音声ファイルは同時実行数2で文字起こしされ、120分の音声ファイルは同時実行数4で文字起こしされます。

上記の計算はScribe v2およびScribe v2 Medicalにのみ適用されます。Scribe v2 Realtimeについては、同時実行数上限の表を参照してください。

高度な機能

キータームプロンプティングと文字起こし編集には追加料金がかかります。詳しい料金については、API料金 ページ を参照してください。

キータームプロンプティング

キータームプロンプティングは、Scribe v2、Scribe v2 Medical(バッチ)、Scribe v2 Realtimeで利用できます。

単語やフレーズを指定して、モデルがそれらを文字起こししやすくします。これは、プロダクト名、人名、その他の固有用語など、音声内で一般的ではない特定の単語や文を文字起こしする際に便利です。キータームは、文脈に基づいてその用語を書き起こすかどうかを判断するため、他のモデルが提供するバイアスキーワードやカスタム語彙よりも強力です。バッチでは最大1,000個のキーターム(各50文字)、リアルタイムでは最大50個のキーターム(各20文字)をサポートします。

キータームプロンプティングの使用方法については、キータームプロンプティングのドキュメントを参照してください。

非逐語モード

非逐語モードは、Scribe v2、Scribe v2 Medical(バッチ)、Scribe v2 Realtimeで利用できます。

no_verbatimを有効にすると、モデルは文字起こしからフィラーワード、言い直し、非流暢な発話を除去します。これにより、字幕や要約など、発話されたすべての単語を捉えることよりも読みやすさが重要なユースケースに適した、より整った出力が生成されます。

エンティティ検出

エンティティ検出は、すべてのバッチモデルおよびScribe v2 Realtimeで利用できます。

バッチモデルとScribe v2 Realtimeは、文字起こし内の複数カテゴリのエンティティを検出し、その正確なタイムスタンプを提供できます。これは、クレジットカード番号、氏名、病状、社会保障番号をハイライトする際に便利です。

サポートされているエンティティの一覧は、エンティティ検出のドキュメントを参照してください。

文字起こし編集

文字起こし編集は、すべてのバッチモデルおよびScribe v2 Realtimeで利用できる実験的機能です。

transcript_editパラメータに自然言語の指示を渡すと、完成した文字起こしに適用されます。編集済みテキストは、元の文字起こしとともにedited_transcriptで返されるため、タイムスタンプと話者ラベルはそのまま維持されます。日付、時刻、単位の表記を正規化したり、別のスタイルを適用したり、1回のリクエストで文字起こしを書き換えたりする場合に便利です。

詳細は、文字起こし編集のドキュメントおよびリアルタイム文字起こし編集ガイドを参照してください。

対応言語

Scribe v2は、以下を含む90以上の言語に対応しています。

アフリカーンス語(afr)、アムハラ語(amh)、アラビア語(ara)、アルメニア語(hye)、アッサム語(asm)、アストゥリアス語(ast)、アゼルバイジャン語(aze)、ベラルーシ語(bel)、ベンガル語(ben)、ボスニア語(bos)、ブルガリア語(bul)、ビルマ語(mya)、広東語(yue)、カタルーニャ語(cat)、セブアノ語(ceb)、チェワ語(nya)、クロアチア語(hrv)、チェコ語(ces)、デンマーク語(dan)、オランダ語(nld)、英語(eng)、エストニア語(est)、フィリピン語(fil)、フィンランド語(fin)、フランス語(fra)、フラニ語(ful)、ガリシア語(glg)、ガンダ語(lug)、ジョージア語(kat)、ドイツ語(deu)、ギリシャ語(ell)、グジャラート語(guj)、ハウサ語(hau)、ヘブライ語(heb)、ヒンディー語(hin)、ハンガリー語(hun)、アイスランド語(isl)、イボ語(ibo)、インドネシア語(ind)、アイルランド語(gle)、イタリア語(ita)、日本語(jpn)、ジャワ語(jav)、カーボベルデ・クレオール語(kea)、カンナダ語(kan)、カザフ語(kaz)、クメール語(khm)、韓国語(kor)、クルド語(kur)、キルギス語(kir)、ラオ語(lao)、ラトビア語(lav)、リンガラ語(lin)、リトアニア語(lit)、ルオ語(luo)、ルクセンブルク語(ltz)、マケドニア語(mkd)、マレー語(msa)、マラヤーラム語(mal)、マルタ語(mlt)、中国語(標準語)(zho)、マオリ語(mri)、マラーティー語(mar)、モンゴル語(mon)、ネパール語(nep)、北ソト語(nso)、ノルウェー語(nor)、オック語(oci)、オディア語(ori)、パシュトー語(pus)、ペルシャ語(fas)、ポーランド語(pol)、ポルトガル語(por)、パンジャブ語(pan)、ルーマニア語(ron)、ロシア語(rus)、セルビア語(srp)、ショナ語(sna)、シンド語(snd)、シンハラ語(sin)、スロバキア語(slk)、スロベニア語(slv)、ソマリ語(som)、スペイン語(spa)、スワヒリ語(swa)、スウェーデン語(swe)、タミル語(tam)、タジク語(tgk)、テルグ語(tel)、タイ語(tha)、トルコ語(tur)、ウクライナ語(ukr)、ウンブンドゥ語(umb)、ウルドゥー語(urd)、ウズベク語(uzb)、ベトナム語(vie)、ウェールズ語(cym)、ウォロフ語(wol)、コサ語(xho)、ズールー語(zul)。

言語サポートの内訳

単語誤り率(WER)は、文字起こしシステムの精度を評価するための重要な指標です。参照文字起こしと比較して、文字起こしにどれだけの誤りがあるかを測定します。以下は、Scribe v2が対応する各言語のWERの内訳です。

ベラルーシ語(bel)、ボスニア語(bos)、ブルガリア語(bul)、カタルーニャ語(cat)、クロアチア語(hrv)、チェコ語(ces)、 デンマーク語(dan)、オランダ語(nld)、英語(eng)、エストニア語(est)、フィンランド語(fin)、フランス語(fra)、ガリシア語 (glg)、ドイツ語(deu)、ギリシャ語(ell)、ハンガリー語(hun)、アイスランド語(isl)、インドネシア語(ind)、イタリア語 (ita)、日本語(jpn)、カンナダ語(kan)、ラトビア語(lav)、マケドニア語(mkd)、マレー語(msa)、マラヤーラム語 (mal)、ノルウェー語(nor)、ポーランド語(pol)、ポルトガル語(por)、ルーマニア語(ron)、ロシア語(rus)、スロバキア語 (slk)、スペイン語(spa)、スウェーデン語(swe)、トルコ語(tur)、ウクライナ語(ukr)、ベトナム語(vie)。

アルメニア語(hye)、アゼルバイジャン語(aze)、ベンガル語(ben)、広東語(yue)、フィリピン語(fil)、ジョージア語 (kat)、グジャラート語(guj)、ヒンディー語(hin)、カザフ語(kaz)、リトアニア語(lit)、マルタ語(mlt)、標準中国語 (cmn)、マラーティー語(mar)、ネパール語(nep)、オディア語(ori)、ペルシア語(fas)、セルビア語(srp)、スロベニア語(slv)、 スワヒリ語(swa)、タミル語(tam)、テルグ語(tel)

アフリカーンス語(afr)、アラビア語(ara)、アッサム語(asm)、アストゥリアス語(ast)、ビルマ語(mya)、ハウサ語(hau)、 ヘブライ語(heb)、ジャワ語(jav)、韓国語(kor)、キルギス語(kir)、ルクセンブルク語(ltz)、マオリ語(mri)、 オック語(oci)、パンジャブ語(pan)、タジク語(tgk)、タイ語(tha)、ウズベク語(uzb)、ウェールズ語(cym)。

アムハラ語(amh)、ガンダ語(lug)、イボ語(ibo)、アイルランド語(gle)、クメール語(khm)、クルド語(kur)、ラオ語(lao)、 モンゴル語(mon)、北ソト語(nso)、パシュトー語(pus)、ショナ語(sna)、シンド語(snd)、シンハラ語(sin)、 ソマリ語(som)、ウルドゥー語(urd)、ウォロフ語(wol)、コサ語(xho)、ヨルバ語(yor)、ズールー語(zul)。

よくある質問

はい。APIでは、音声ファイルとビデオファイルの両方をアップロードして文字起こしできます。

最大3GBのファイルをサポートします。時間の上限は文字起こしモードによって異なります。

  • 標準モード(use_multi_channel=false):最大10時間
  • マルチチャンネルモード(use_multi_channel=true):すべてのチャンネルの合計時間が10時間未満である必要があります

APIでは次の音声・ビデオ形式をサポートしています。

  • audio/aac
  • audio/x-aac
  • audio/x-aiff
  • audio/ogg
  • audio/mpeg
  • audio/mp3
  • audio/mpeg3
  • audio/x-mpeg-3
  • audio/opus
  • audio/wav
  • audio/x-wav
  • audio/webm
  • audio/flac
  • audio/x-flac
  • audio/mp4
  • audio/aiff
  • audio/x-m4a

サポートされているビデオ形式は次のとおりです。

  • video/mp4
  • video/x-msvideo
  • video/x-matroska
  • video/quicktime
  • video/x-ms-wmv
  • video/x-flv
  • video/webm
  • video/mpeg
  • video/3gpp

ElevenLabsは、モデルがサポートする言語数を継続的に拡大しています。更新情報を確認するため、定期的にご覧ください。

はい。非同期の文字起こし結果は、UIのWebhook設定で構成したWebhookに送信できます。詳しくは、Webhookクックブックを参照してください。

はい。マルチチャンネルSTT機能では、各チャンネルを個別に処理し、そのチャンネル番号に基づいて話者IDを割り当てる音声の文字起こしが可能です。この機能は最大5チャンネルをサポートします。詳しくは、マルチチャンネル文字起こしクックブックを参照してください。

ElevenLabsのスピーチtoテキストは、文字起こし用に送信された音声の長さに基づいて課金されます。請求は音声1時間ごとに計算され、料金はプランとモデルによって異なります。詳しい料金については、API料金ページを参照してください。

主な仕様

  • 対応入力:音声ファイルとビデオファイルの両方に対応
  • 最大ファイルサイズ:3GB
  • 最大時間:10時間(標準モード)、1時間(マルチチャンネルモード)
  • マルチチャンネルモード:最大5チャンネル。各チャンネルを個別に処理し、チャンネル番号に基づいて話者IDを割り当て
  • Webhook:非同期の文字起こし結果をWebhookに配信可能。ワークスペース設定で構成
  • 対応音声形式:AAC、AIFF、OGG、MP3、OPUS、WAV、FLAC、M4A、WebM
  • 対応ビデオ形式:MP4、AVI、MKV、MOV、WMV、FLV、WebM、MPEG、3GPP