
文字起こしにおける音楽の対処法(2026年版・正直なガイド)
Summarize this article with:
音声ファイル内の音楽は、AI文字起こしモデルが予測可能かつ修正可能な形で失敗する数少ないケースのひとつです。ボーカル入りの曲では部分的に誤った歌詞が出力され、インストゥルメンタル部分ではハルシネーションによる埋め草テキストや捏造フレーズが発生します。現在、主要な文字起こしサービスのどこも専用の音楽検出・音楽抑制機能を提供していないため、信頼できる対策は上流で講じることです。文字起こしの前に音楽をカットするか、音源分離ツールで音声トラックを分離してから任意のエンジンに送りましょう。
文字起こし結果に音楽が現れるとき、その姿は2種類の問題のどちらかです。曲が流れた箇所に現れる意味不明の疑似歌詞か、インストゥルメンタル部分に重なるハルシネーションによる埋め草テキストです。 どちらも同じ根本原因から生じており、どちらにも実用的な解決策があります。重要なのは、Whisper、Deepgram Nova-3、AssemblyAIを含む主要な文字起こしエンジンのどこにも、こうしたセグメントを自動的に抑制する検証済みの専用音楽検出レイヤーが存在しないという点です。信頼できる解決策は、文字起こしの中ではなく、その前段階で実施されます。

文字起こし結果が実際に伝えていること
症状はほぼ常に、次の3つのうちのいずれかです。
ボーカルセクション上の意味不明な疑似歌詞。 ポッドキャストでレビュー用に30秒の楽曲クリップを流すとします。文字起こし結果はその時間を、部分的で誤った歌詞で埋め尽くします。曲の言葉にでっち上げの単語が混ざり、句読点が乱れ、モデルが自信を失った文の途中で切れていきます。
インストゥルメンタル音楽上のハルシネーションによる埋め草。 イントロのジングルは純粋にインストゥルメンタルなのに、文字起こし結果には「so」「um」「you know」のような言葉、さらには一見筋の通った捏造文まで現れます。2025年5月に発表された研究によると、Whisper large-v3は非音声音声サンプルの55%超で「so」と文字起こしし、環境音入力のほぼ100%でハルシネーションを起こします。音楽は特別扱いされていません。
発話の下で音楽が流れるときの部分的なデタラメ。 パーソナリティがBGMに乗せて話すとします。文字起こし結果は発話を拾いますが、楽句の端にある単語を壊します。モデルが同時に2つの音源を調整しようとしているためです。
自分の症状がどれに該当するかを理解すれば、最初にどの解決策に手を付けるべきかがわかります。
なぜAIエンジンはこれを自動的に解決しないのか
よくある思い込みは、最新のツールが音楽を「検出してタグ付けする」というものです。しかし、ベンダーのドキュメントにはそう書かれていません。
Deepgram Nova-3のドキュメント(2026年7月時点で確認)には、リアルタイム多言語文字起こし、語彙のカスタマイズ、キータームプロンプティングが記載されています。音楽検出や音楽抑制の機能は登場しません。
AssemblyAIのオーディオインテリジェンスドキュメント(2026年7月時点で確認)には、自動チャプター、感情分析、エンティティ検出、トピック検出、要約が記載されています。音楽識別は機能として登場しません。
YouTube自動字幕に表示される「[Music]」ラベルは、Googleがパイプラインに追加している別の分類レイヤーによるもので、Whisperのデコーダー由来ではありません。Whisper自身の音楽セグメントへの出力は、きれいなタグにはなりません。
Whisperが音楽に対して実際に行うことは、GitHubのディスカッションスレッドや公開研究に記録されています。モデルの抑制トークンリストにより、背景音を[music]や[applause]などとしてラベル付けすることがスキップされるため、デコードは非音声音声に進み続け、最終的にモデルが発話を幻覚するまで続きます。出力はもっともらしく見えるため、無音の場合よりも気づきにくくなります。
音声区間検出(VAD)は役立ちますが、この問題を解決しません。VADは無音を確実に除去します。しかし音楽はVADが発話とみなす周波数帯域にエネルギーを持つため、音楽セクションはよくフィルターをそのまま通過します。WhisperXはデフォルトでVADを使用しますが、それでも音楽ハルシネーションが発生します。
解決策1:文字起こし前に音楽をカットする
イントロ、アウトロ、ジングルといった予測可能で構造的な音楽の場合、これが最速かつ最も信頼できる解決策です。 元の公開用ファイルは変更せずに残します。音楽を取り除いた別の「文字起こし用カット」を作成し、それを文字起こしして、音楽があった場所に手動でマーカーを追加します。
Audacityなら無料で対応できます。音楽セグメントを選択して削除し(タイミングを保持したい場合は無音化)、クリーニング済みのファイルを書き出し、そのクリーンなファイルを文字起こしします。10秒のポッドキャストイントロなら一度行えば、それを恒常的なワークフローに設定できます。
音楽が全体に散在するコンテンツ(音楽レビュー番組、楽曲例を使う教育系ポッドキャスト)の場合、ワークフローにタイムスタンプのステップが加わります:
- すべての音楽セグメントを開始時刻と終了時刻とともにリストアップします。
- 各セグメントを文字起こし用コピーから切り取ります。
- 発話のみのコピーを文字起こしします。
- 適切なタイムスタンプの位置にマーカーを文字起こし結果へ貼り戻します:[Song: 曲名 by アーティスト名, 14:22-15:04]。
手間は前もってかかりますが、SEO、ショーノート、検索、アクセシビリティに実際に使える文字起こし結果が得られます。
解決策2:音源分離で音声トラックを分離する
発話と音楽が同時に流れる場合、両者が混ざっているためカットは選択肢になりません。 BGMに乗せてパーソナリティが話す場合、曲が背景で流れている間にゲストが話す場合、ライブ会場からの録音などがこれに該当します。
音源分離ツールは、ミックスされた音声ファイルを構成要素ごとのトラックに分割します。
Demucs v4(Facebook Research製、オープンソース、htdemucsとも呼ばれる)は、音声をボーカル、ドラム、ベース、その他の楽器に分離します。ボーカル/otherトラックを取り出して、それを文字起こしします。Demucs v4はMUSDB HQベンチマークで9.0 dB SDRを達成しており、実用上はかなりきれいな音声分離につながります。Pythonで実行できるほか、ローカルGPUを持たないチーム向けにReplicateのようなクラウドサービス経由でも利用できます。
Spleeter(Deezer製、オープンソース)は、2ステム(ボーカル、伴奏)、4ステム、5ステムの分離モードを提供します。CPU上ではDemucsより高速ですが、音楽分離タスクの品質は一般的に低めの評価です。発話+音楽のシナリオでは、どちらのツールでも機能します。
音源分離は処理時間を増やし、独自のアーティファクトも生じさせます。背景音楽が大きい一回限りの録音なら、品質向上のメリットは十分にあります。音楽が短いジングルにしか現れないポッドキャストなら、カットの方が簡単です。
解決策3:セルフホストのWhisperで非音声を抑制する設定
Whisperを自分で運用している場合、2つのパラメータで音楽ハルシネーションを減らせます(なくせるわけではありません)。
no_speech_thresholdは、Whisperがあるセグメントに発話が含まれないと判断して出力を抑制する確率の閾値を設定します。これを上げると(1.0に近づけると)、モデルは確信の持てないセグメントをより積極的に捨てるようになります。トレードオフとして、本当に静かな発話も落ちる可能性があります。
initial_promptは、デコード開始前にモデルの期待を形成します。音声をポッドキャストやインタビューとして位置づけると、事前確率が会話調の発話へと傾きます。initial_promptの効果は最初の30秒間しか持続せず、以降のセグメントのデコードによって上書きされるため、長尺音声よりも短いファイルの方が有用です。
result = model.transcribe(
audio_file,
no_speech_threshold=0.8,
condition_on_previous_text=True,
initial_prompt="The following is a podcast interview. Music sections are not spoken content."
)
これにより非音声セグメントでのハルシネーション出力は減りますが、きれいな「[Music]」タグが確実に生成されるわけではありません。特にボーカル入りの曲では、モデルは依然として歌詞を文字起こししようとします。VADによる前処理は、デコード前に音声を発話が含まれそうな区間へ絞り込むもので、大きなファイルに対しては2つのアプローチのうちより強力です。
これらの設定は、openai-whisper Pythonライブラリまたはfaster-whisper経由のセルフホストWhisperに関係します。ホスト型APIで公開されているパラメータは少なくなっています。
解決策4:後処理で音楽セクションを除去する
文字起こし前に音声を変更できない場合は、文字起こし結果自体に音楽混入の認識可能な兆候が現れます。
音楽ハルシネーションは次のような形で現れがちです。繰り返される短いフレーズ、見慣れない固有名詞、前後の内容と意味的につながらない文、句読点の密度の急な変化。スクリプトや丁寧な通読で、これらのセグメントをレビュー対象としてフラグを立てられます。
フラグを立てたセクションを明示的なマーカーに置き換えます:
[Intro music: 0:00-0:12]
[Song clip: 22:40-23:10]
ショーノート、字幕、検索インデックスに使う文字起こし結果にデタラメなテキストを残しておくより、こちらの方がきれいです。放置すると、下流の要約ツールがハルシネーションによる歌詞をコンテンツとして扱い、誤った要約を生成します。
具体的なシナリオ
音楽イントロ・アウトロ付きポッドキャスト
文字起こし前に音楽をカットします。毎回同じ形式で公開するなら、パーソナリティが話し始める地点から始まるテンプレートの文字起こし用カットを作成しましょう。週に複数本のエピソードを配信するポッドキャスト文字起こしワークフローでは、一度のセットアップで何時間も節約できます。
音楽レビューや教育コンテンツ
楽曲クリップが全体に散在することになります。解決策1で説明したタイムスタンプリストのワークフローを制作プロセスに組み込みましょう。音声を文字起こしツールに送る前に、各クリップのタイムスタンプを記録します。文字起こし後に、適切な場所へマーカーを追加します。このコンテンツタイプで正確な文字起こし結果を得られるのは、この方法だけです。
BGM付き録音
音声品質が重要なら、音源分離が適切なツールです。音楽の音量が小さく発話が明瞭なら、セルフホストWhisperでno_speech_thresholdを高めに設定すると効果があることがあります。楽句付近の単語でわずかな精度低下を受け入れるのは、社内利用なら妥当です。公開用なら、トラックを分離しましょう。
音楽サウンドトラック付きYouTube動画
全編に音楽が入っているYouTube動画から音声を抽出して直接文字起こしエンジンに送ると、大幅なハルシネーションが生じます。YouTube文字起こし生成は、動画が主に発話主体の場合に最も効果を発揮します。音楽中心のYouTubeコンテンツでは、文字起こし前の音源分離が信頼できる道筋です。
音楽付き礼拝や説教
説教と音楽が独立したセグメントとして交互に現れます。文字起こし前に音楽セクション(賛美歌、ワーシップソング)をカットするのが実用的なアプローチです。各音楽セクションに手動でマーカーを追加します。発話部分はきれいに文字起こしされます。
音楽多用型クリエイターのためのワークフロー
音楽入りコンテンツを定期的に制作する人にとって、制作チェーンにクリーンカットのステップを組み込むことは、後から文字起こし結果を直すよりも安上がりです。
- すべてのエピソードを2バージョンで作成します。公開用ミックス(音楽入り)と文字起こし用カット(発話のみ)です。
- 編集ソフトで、文字起こし用カットを独立した書き出しステップとして維持します。
- 文字起こしするのは文字起こし用カットのみにします。
- 最終的な文字起こし結果に、音楽が流れたタイムスタンプの位置へ手動で音楽マーカーを追加します。
- クリーンな文字起こし結果をショーノート、SEO、字幕、検索に活用します。
一回限りの録音では、再編集できないファイルのケースを音源分離のルート(解決策2)がカバーします。
音量の小さな控えめなBGMが入った録音コンテンツでは、上述のハルシネーションパターンが文字起こし結果にないか確認し、手動で取り除きましょう。話者ダイアライゼーションの解説では、関連する精度問題を扱っています。声が重なることで、文字起こし結果に似たような乱れた出力の症状が生じ、診断プロセスも共通しています。
音楽が入っていない発話のみの録音から、ただクリーンな文字起こし結果が必要なだけであれば、ConvertAudioToTextがアカウント登録なしでアップロードを処理します。
FAQ
音楽が流れた箇所に意味不明なテキストが表示されるのはなぜですか?
AI文字起こしモデルは、音声を単語にマッピングするよう訓練されています。音声に音楽、特にボーカルが含まれていると、モデルはそれを発話として扱い、文字起こししようとします。その結果、意味不明の疑似歌詞、ハルシネーションによる埋め草、あるいは完全に捏造されたフレーズが生じます。現在の一般向け文字起こしサービスには、これらのセグメントを確実に抑制できる検証済みの専用音楽検出レイヤーは存在しません。
VAD(音声区間検出)で音楽を自動的に除去できますか?
部分的に可能です。VADは無音や低エネルギーのセグメントをうまくフィルタリングしますが、音楽はVADが発話とみなす周波数帯域にエネルギーを持つため、音楽に対してはしばしば失敗します。デフォルトでVADが有効になっているWhisperXでも、すり抜けた音楽セクションに対してハルシネーションが発生します。VADは有用な出発点ですが、音楽に対する完全な解決策ではありません。
Whisperは音楽セグメントに[Music]ラベルを出力しますか?
確実には出力されません。YouTube自動字幕で見かけるかもしれない[Music]ラベルは、Googleが自社のASRパイプラインの上に追加している別の分類レイヤーによるもので、Whisperのデコーダー由来ではありません。Whisper自身の音楽セグメントへの出力は、ハルシネーションによる歌詞から捏造フレーズ、埋め草の単語まで様々です。2025年に発表された研究では、Whisper large-v3は非音声の環境音のほぼ100%でハルシネーションを起こすことが判明しています。音源分離または手動カットが唯一の信頼できる緩和策です。
録音から歌詞を文字起こしする価値はありますか?
汎用ASRエンジンを使う限り、ほぼ無価値です。歌唱音声はタイミング、ピッチ、音素境界が変化しており、会話音声で訓練されたモデルを混乱させます。部分的で不正確な歌詞に、でっち上げの単語が混ざったものが出力されます。正確な歌詞が本当に必要なら、専用の歌詞認識サービスか手動文字起こしが適切なツールです。ほとんどのポッドキャストやインタビューのユースケースでは、音楽セクションをカットして[Song: 曲名 by アーティスト名]のようなマーカーに置き換える方が、はるかにきれいな結果になります。
出典
- Deepgram モデルと言語の概要(2026年7月時点で確認): https://developers.deepgram.com/docs/models-languages-overview
- AssemblyAI オーディオインテリジェンスドキュメント(2026年7月時点で確認): https://www.assemblyai.com/docs/guides/audio-intelligence
- Calm-Whisper:非音声におけるWhisperハルシネーションの低減(arXiv、2025): https://arxiv.org/html/2505.12969v1
- Whisper GitHub ハルシネーション議論 #1606: https://github.com/openai/whisper/discussions/1606
- Demucs v4 / htdemucs 概要(HuggingFace Spaces): https://huggingface.co/spaces/abidlabs/music-separation
- Deezer製 Spleeter(GitHub): https://github.com/deezer/spleeter
- WhisperX VADドキュメント(DeepWiki): https://deepwiki.com/m-bain/whisperX/4.1-voice-activity-detection
- Whisper initial_promptガイド(Sottoブログ): https://sotto.to/blog/improve-whisper-accuracy-prompts
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.