録音データからの文字起こし 無料での話者分離付き文字起こし(ローカル実行)手順

少々、今までの経験が生かされない違うシュチエーションが生じましたので、相手との同意を得て会話の録音をしました。

ですが、文字に起こさないと意味を成さないなぁ。後でまた、聞き直すのも大変だし、今だとAIとかがチャチャッとやってくれるんじゃないの?

ってことで、聞いてみた所、以下の回答となりましたよ。

Chatgptの回答

了解しました!m4a形式、1.5時間、日本語、話者分離あり、できれば無料ですね。
この条件に一番近いのは、**オープンソースの音声認識+話者分離ライブラリ(pyannote.audio + OpenAI Whisper)**です。

無料でできる方法(おすすめ)

  • OpenAI Whisper:日本語対応、精度高め、無料でローカル実行可能。
  • pyannote.audio:話者分離(Speaker Diarization)に特化。Whisperで文字起こし後に話者分離を適用可能。

ただし、1.5時間の音声はそこそこ長いので、

  • 無料でやるには「PCで処理」するのがベストです(クラウドだと有料が多い)。
  • オンラインサービスだと無料枠が30分〜1時間程度が多いです。

無料で文字起こし+話者分離を行う手順(PCで)

1.Pythonを用意(WindowsならAnacondaでもOK)

2.以下のライブラリをインストール:

pip install openai-whisper pyannote.audio

3.m4aをwavに変換(pydubなどでOK)

4.Whisperで文字起こし:

import whisper
model = whisper.load_model("large")  # largeが一番精度高い
result = model.transcribe("audio.wav", language="ja")
print(result["text"])

5.pyannoteで話者分離(推定話者数2〜3で設定):

from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization")
diarization = pipeline("audio.wav")
for segment, _, speaker in diarization.itertracks(yield_label=True):
    print(f"{segment.start:.1f}-{segment.end:.1f}: {speaker}")

6.最後に、文字起こしテキストと話者分離の結果をマージして完成。

と、提案なのですが、結局、やり方を分かるようにして、手順書とpythonプログラム渡すから、自分でやって。と言うことに。

再度、Chatgpt ここからが本番です。

承知しました!
この環境ではクラウドAPIや音声認識エンジンを直接動かせないため、無料(ローカル実行)で2人の話者分離つき文字起こしをWordに書き出すスクリプト一式をこちらで用意し、音声も処理しやすいよう10分ごとに分割しておきました。あとはお手元のPCで実行いただければ完成します。

いますぐダウンロード

  • 変換WAV(元m4a → wav):Download
    (他は /mnt/data/chunks/ に並んでいます)
  • 実行スクリプト:transcribe_diarize_to_word.pyDownload
  • 必要ライブラリ一覧:requirements.txtDownload
  • 手順書(README):README_文字起こし手順.txtDownload

実行手順(無料・ローカル)

  1. Python(3.9以降)を用意
  2. 先に PyTorch を環境に合う手順で導入(GPUなしでもOK)
  3. requirements.txt を使って必要ライブラリを入れる
pip install -r requirements.txt
  1. そのまま1.5hのWAVで実行(話者=2、モデル=small、出力=out.docx)
python transcribe_diarize_to_word.py --audio "audio_converted.wav" --out "out.docx" --speakers 2 --model small
  • CPUのみなら --model base--model tiny にすると軽くなります(精度はやや低下)。

スクリプトは次を自動で行います:

  • Whisperで日本語文字起こし(タイムスタンプ付き)
  • Resemblyzer + KMeansで2話者クラスタリング
  • セグメントごとに話者A/Bを割当
  • **Word(.docx)**へ「話者A/B: [開始–終了] 文章」の形式で書き出し

もしうまくいかない時

  • torch が入らない → PyTorch公式の案内どおり再インストール
  • モデルが重い → --model base--model tiny に変更
  • ノイズが多いと話者分離が揺れることがあります。必要なら後で整形・校正もお手伝いします。

補足

という感じです。

ダウンロードの所から実際に送られたファイルを貼り付けましたので、使って見てください。

Python3.9の環境が構築できないと、話になりませんのでご注意ください。

自分の環境で、まず、音声ファイル変換に20分→文字起こし変換に20分位でした。

各PCのスペックで全然違うと思いますので、時間は当てにしないでください。

変換の感じですが、結構、ちゃんと文字起こしされているように思いましたよ。

そして、.docファイルを最終的に要約してもらって完成です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください