erm: 言語の言い淀みを削除するためのローカルCLI

概要

ermは、音声録音から「um」、「uh」、「er」といった言語の言い淀み(disfluencies)を自動的に削除するために設計されたローカルコマンドラインインターフェース(CLI)です。クリック音や不自然な遷移が発生する単純なカット手法とは異なり、ermは文字起こしベースの検出と波形分析、およびルームトーン合成を組み合わせることで、シームレスな編集を実現します。

自動音声カットの技術的課題

文字起こしに基づいた単純なカット(フィラーのタイムスタンプを特定して音声をスライスする手法)は、主に以下の3つの理由から、プロフェッショナルな品質の結果を得るには不十分です。

  1. 文字起こしのギャップ: Whisperのような音声文字起こしモデルは、フィラーを文字起こしから自動的に除外することが多く、削除対象となるトークンが残らないことがあります。
  2. 波形の不連続性: 任意のタイムスタンプで音声をスライスすると、波形に「段差」が生じ、それがクリック音として人間の耳に感知されます。
  3. 周囲のノイズの変化: きれいな継ぎ合わせを行ったとしても、カットの前後で背景のヒス音(ルームトーン)がわずかに異なるため、オーディオのフロアに知覚可能な変化が生じます。

検出パイプライン

フィラーの検出率(recall)を高めるために、ermは4段階の検出戦略を採用しています。

1. Whisperによる文字起こし

このツールは、faster-whisper(デフォルトではmedium.enモデル)を使用して、単語レベルのタイムスタンプを生成します。モデルに対して文字起こしをクリーンアップしないよう特定の指示を出すことで、フィラーが検出用のトークンとして保持されるようにします。

2. ギャップ・フィラー分析

文字起こしされた2つの単語の間のポーズが350msを超える場合、ermはそのギャップ内の音声を分析します。Whisperが沈黙と報告した箇所で音声が検出された場合、ツールはそれをモデルが文字起こしから除外したフィラーとしてフラグを立てます。

3. 単語内フィラー検出

Whisperがフィラーを隣接する単語に結合してしまった場合(例:「in, uhhhhh」が単一の「in」トークンになる)、ermは異常に長い単一トークンを特定します。これらのトークンを短い音声の落ち込みで分割し、妥当な発音の長さに基づいてどちらのセグメントが実際の単語であるかを判断し、残りをフィラーとしてマークします。

4. 持続時間とピッチのテスト

テキストが示唆するよりも大幅に長い単語については、ermは末尾の音声成分をスキャンします。話し手が単にゆっくり話しているのか(可変的な音響形状)、あるいは「uhhhhh」のように母音を保持しているのか(一定で単純な音響形状)を区別するために、ピッチテストを適用します。

シームレスな継ぎ合わせの実現

聴覚的なアーティファクトを排除するために、ermは最終的なレンダリングの前にいくつかの精緻化ステップを実行します。

波形のアライメントとゼロ交差

カットの終止点は、最も静かな付近の地点を見つけるために最大60msまでスライドさせることが可能です。その地点から、終止点は最も近い「ゼロ交差(zero-crossing)」、つまり波形がゼロを横切る正確な瞬間にスナップします。2つのゼロポイントを結合することで、クリック音の原因となる波形の段差を防ぎます。

ダイナミック・クロスフェード

ffmpegを使用して、ermは2つの音声セグメントが重なる部分にクロスフェードを適用します。固定の長さではなく、カットのサイズに基づいてクロスフェードの長さをスケーリング(50msから120msの間)させることで、短いクリップの不自然な音の広がりや、長いクリップのポップ音を防ぎます。

ルームトーン合成

カットによる背景ヒス音の変化を隠すために、ermは元の録音の静かな区間を自動的に特定します。この「ルームトーン」を、出力全体の背後で低い音量でループ再生させることで、一貫貫した環境音のフロアを形成し、継ぎ合わせの遷移を隠します。

運用モードと検証

ノイズ除去戦略

ノイズ除去は検出の精度を低下させる可能性があるため、ermは4つのモードを提供しています。デフォルトはhybridモードです。これは、検出は精度の維持のために元の音声で行い、最終的なカットはより良い音質のためにノイズ除去済みのコピーから抽出するというものです。

検証

validateサブコマンドは、出力の整合性を確認するために、ファイルが開けるか、出力の長さがカットの合計長さに近い分だけ入力より短くなっているか、そして、クリーンアップされたファイルを再文字起こししてフィラーが消えているかを確認します。

範囲と制限事項

ermは、言語そのものを削除するのではなく、音声を削除することに特化しています。以下のものは削除しません:

  • フィラーフレーズ: 「like」、「you know」、「I mean」などは、意味的な意味を持つ可能性があるため、保持されます。
  • 編集上のエラー: 言葉の繰り返し、言い直し、または長い思考のポーズは、そのまま残ります。これらを削除するには、どの「テイク」が優れているかという編集上の判断が必要となるためです。

コミュニティの視点

コンテンツクリエイターにとって、このツールは大幅な時間の節約につながりますが、一部のユーザーや言語学者は、言い淀みは人間の発話において役割を果たしていると主張しています。

「しかし、発話において [ums and ahs] は、次に続く部分が重要であることを示すための、集中ポイントとして機能することがあります。」

また、非ネイティブスピーカーの場合、これらのポーズは認知的な遷移を示すことが多く、それらを取り除くと、話し手がたどたどしく聞こえたり、意図した文章の意味が変わってしまったりすることがあると指摘されています。

Sources