Nodaro ドキュメント
ドキュメントノードリファレンスモデルAI エージェント(MCP)開発者向けセルフホスティングリサーチ
オーディオ

文字起こし

ElevenLabs STT または Whisper で、オーディオや動画の音声をテキストにします。字幕用の単語のタイミング、話者のラベル、音楽や笑い声のタグも取得できます。

文字起こし(Transcribe)ノードは、音声をテキストにします。オーディオか動画を接続すると、ノードは文字起こしを 2 つの形で返します。プレーンなテキストと、すべての単語のタイミングが入った構造化された文字起こしです。3 つのエンジンから選べ、エンジンによって、字幕にとって重要な 1 点が異なります。単語のタイミングを返すかどうかです。

使いどころ

  • インタビューやポッドキャストを文字起こしして、文章のコンテンツにします。
  • 字幕を追加(Add Captions)で、動画の音声から字幕を作ります。
  • ボイスメモや会議の録音をテキストにします。
  • オーディオライブラリを、テキストで検索できるようにします。
  • 文字起こしをテキスト系のノードに渡して、要約や分析をします。
  • 編集プラン(Edit Plan)が編集を計画するのに必要な、タイミング付きの文字起こしを渡します。

クイックスタート

ノードを追加する

キャンバス上で Tab を押し、オーディオ › 文字起こし › 文字起こしを選びます。

録音を接続する

オーディオ系か動画系のノードを、オーディオ入力に接続します。

エンジンと言語を選ぶ

設定パネルを開きます。ほかのエンジンが必要でなければ、プロバイダーは ElevenLabs STT のままにします。言語は自動検出のままにするか、言語を選びます。

実行する

ノードの実行をクリックします。プレーンな文字起こしはテキスト出力に、タイミング付きの文字起こしは文字起こし出力に表示されます。

オーディオ動画文字起こしプロンプト動画アップロードトーキングヘッド文字起こしElevenLabs STT字幕を追加単語ハイライトプロンプト要約を書く
動画を 1 回だけ文字起こしします。タイミング付きの文字起こしをもとに単語ごとの字幕を表示し、テキストは要約します。

入力と出力

入力接続できるノード説明
オーディオオーディオ系と動画系のノード文字起こしする音声です。動画の場合、ノードはその音声トラックを使います。
出力内容
テキスト文字起こし全体を、プレーンなテキストにしたものです。テキストを受け付けるどのノードにも接続できます。
文字起こしミリ秒単位の単語とセグメントのタイミングが入った、構造化された文字起こしです。字幕を追加や編集系のノードに渡します。

プロンプトの中で {Transcribe} のようにノードのラベルを参照すると、プレーンなテキストが入ります。

設定

設定説明
プロバイダーエンジンです。ElevenLabs STT(デフォルト)、Whisper — 単語タイミングなし、Incredibly Fast Whisper のいずれかです。
言語自動検出(デフォルト)か、英語、スペイン語、ヘブライ語、日本語、アラビア語など 20 の言語のいずれかです。
話者分離誰が何を話したかを、ラベルで示します。デフォルトはオフです。プロバイダーが ElevenLabs STT のときだけ表示されます。
オーディオイベントのタグ付け[music] や [laughter] など、話し声以外の音を文字起こしの中に記します。デフォルトはオフです。プロバイダーが ElevenLabs STT のときだけ表示されます。

話者分離とオーディオイベントのタグ付けは、互いに独立した設定です。どちらか一方だけをオンにすることも、両方をオンにすることも、どちらもオフのままにすることもできます。

文字起こしの設定パネル。「プロバイダー」は ElevenLabs STT、「言語」は「自動検出」に設定され、「話者分離」と「オーディオイベントのタグ付け」のチェックボックスがあります。文字起こしの設定パネル。「プロバイダー」は ElevenLabs STT、「言語」は「自動検出」に設定され、「話者分離」と「オーディオイベントのタグ付け」のチェックボックスがあります。

モデル

モデル開発元モードクレジット詳細
ElevenLabs STTElevenLabs文字起こし22単語単位のタイムスタンプ(常にオン)、話者の識別、効果音イベントのタグ付きで文字起こしをします。文字起こしを字幕に使うときは、このエンジンを選んでください。
Incredibly Fast WhisperOpenAI文字起こし40Whisper による高速な文字起こしです。指定すると単語単位のタイムスタンプを返すため、その文字起こしを字幕に使えます。
WhisperOpenAI文字起こし40Whisper による文字起こしで、返すのはフレーズ単位のセグメントのみ、単語のタイムスタンプはありません。文字起こしや静的な字幕には十分ですが、単語ごとにタイミングを合わせる(キネティックな)字幕には向きません。

単語のタイミング:どのエンジンが返すか

エンジン単語のタイミング備考
ElevenLabs STT(デフォルト)常に返す設計上、単語単位です。字幕、話者のラベル、オーディオイベントに使うエンジンです。
Incredibly Fast Whisper必要なときに返す文字起こし出力が接続されていると、ノードが自動で単語のタイミングを要求します。
Whisper返さないフレーズ単位のセグメントだけです。プレーンな文字起こしや静的な字幕なら、これで十分です。

明らかに話し声があるオーディオに対して、ElevenLabs STT や Incredibly Fast Whisper が単語のタイミングを返さなかった場合、実行は失敗し、クレジットは返還されます。話し声がまったくないオーディオは、単語なしのまま成功します。たとえば、[music] と文字起こしされるクリップです。

構造化された文字起こし

文字起こし出力は、次のような形です。

{
  "version": 1,
  "language": "en",
  "words": [
    { "text": "Welcome", "startMs": 0, "endMs": 420 },
    { "text": "back", "startMs": 460, "endMs": 700 }
  ],
  "segments": [
    { "startMs": 0, "endMs": 700, "text": "Welcome back" }
  ]
}
  • 時間はすべて、ミリ秒単位の整数です。
  • words には、すべての単語が開始と終了の時間とともに入ります。エンジンが単語のタイミングを返すときは、常に値が入ります。
  • segments には、より大きな単位の文やフレーズが入ります。エンジンがそれを返す場合だけです。
  • 話者分離をオンにした実行では、各単語と各セグメントに speaker も付きます。単語には confidence が付くこともあります。

テキスト出力では、話者分離によって各セグメントの前に Speaker 1: のようなラベルが付き、オーディオイベントのタグ付けによって [music] や [laughter] のようなタグが、その音の位置に入ります。

文字起こしから字幕を作る

文字起こし出力を、字幕を追加の文字起こし入力に接続します。すると字幕を追加が、各単語のタイミングに合わせて字幕を描きます。これには ElevenLabs STT か Incredibly Fast Whisper を使います。

Whisper の文字起こしでは字幕を作れません。Whisper を使う文字起こしノードが字幕を追加につながっている場合、何かが実行されたり課金されたりする前に、次のメッセージとともに実行が拒否されます。

Captions need word timings, but the "whisper" engine does not return word timings — pick incredibly-fast-whisper or elevenlabs-stt.
  • このチェックは、EDL 適用(Apply EDL)を経由するつながりや、どの深さのサブワークフロー内のつながりも対象にします。
  • 接続した時点で、設定パネルのプロバイダーの横にも同じ警告が表示されるので、実行する前に修正できます。
  • 文字起こしノードを単独で実行する場合は、ブロックされることはありません。Whisper の文字起こしを、ほかの場所に渡すのも問題ありません。
  • 事前にチェックできないケースが 1 つあります。文字起こしと字幕を追加が、サブワークフローの境界をはさんで別々の側にあるつながりです。この場合、文字起こしが実行されて課金された後に、字幕を追加で実行が失敗します。

クレジット

文字起こしの料金は、オーディオの長さにかかわらず、1 回の実行ごとの定額です。

エンジン1 回の実行あたりのクレジット
ElevenLabs STT22
Incredibly Fast Whisper40
Whisper40

字幕を追加に接続された Whisper の文字起こしのように、開始前に拒否されたリクエストには料金がかかりません。

セルフホスティング環境の場合

各エンジンは、自分のプロバイダーキーで動きます。選んだエンジンのキーがなく、環境に Nodaro Cloud への接続がある場合、文字起こしはその接続を通じて実行されます。どちらもない場合、ノードは失敗し、追加すべきキーを示すメッセージが表示されます。プロバイダーキーを参照してください。

ヒント

  • 言語は自動検出のままにする:言語を選ぶのは、その言語がわかっている場合だけにします。たとえば、2 つの言語の響きが似ている場合です。
  • 会話では話者にラベルを付ける:インタビュー、会議、ポッドキャストでは、話者分離をオンにします。
  • 必要なときはイベントにタグを付ける:背景の音が録音の理解に役立つ場合は、オーディオイベントのタグ付けをオンにします。
  • ノイズの多いオーディオは先にクリーンにする:文字起こしの前に、録音を音声抽出(Voice Extractor)に通します。
  • とても長いオーディオは分割する:短いセグメントのほうが、確実に文字起こしできます。チャンクに分割(Split into Chunks)は、長いファイルを同じ長さのパートに分けます。
  • 代わりに手元の台本を合わせる:正確な台本がすでにある場合は、強制アライメント(Forced Alignment)が、台本の各単語のタイミングをオーディオに合わせて求めます。

API から

POST /v1/transcribe は、audioUrl と、任意の provider(elevenlabs-stt、incredibly-fast-whisper、whisper)、language、diarize、tagAudioEvents、wordTimestamps を受け取ります。

  • エンジンを指定する:provider のないリクエストは Whisper で実行されるので、既存の呼び出し元はこれまでと同じエンジンを使い続けます。単語のタイミング、diarize、tagAudioEvents が必要な場合は、必ず provider を設定してください。
  • 単語のタイミング:incredibly-fast-whisper が単語を返すのは、wordTimestamps: true を指定した場合だけです。whisper で wordTimestamps: true を指定すると、ジョブが作成される前に 400 validation_error で拒否されるので、料金はかかりません。エンジンが知らないうちに切り替えられることはありません。
  • 字幕:完了したジョブの output_data.words は、すでに字幕の形(text、startMs、endMs)になっています。これを captions として POST /v1/add-captions に渡せば、字幕を追加がもう一度文字起こしすることはありません。
  • 料金:GET /v1/credits/model-cost?model=<engine> は、自分のアカウントでの正確な料金を返します。

SDK のメソッドは client.audio.transcribe、CLI のコマンドは nodaro audio transcribe --provider <engine> です。MCP ツールの transcribe は常に ElevenLabs STT で実行されるので、その結果には必ず単語のタイミングが含まれます。音声とメディアを参照してください。

よくある質問

最終更新

目次