Macで音声を無料で文字起こしする方法

音声ファイルを文字起こしする必要があり、Macのローカル環境だけで完結させる方法を試しました。
結論として、Apple Silicon搭載のMacであれば「mlx-whisper」が手軽です。
課金も不要で、音声を外部に送信することもありません。

mlx-whisperとは

OpenAIが公開している音声認識モデルのWhisperを、Appleシリコンに最適化した形で動かせるようにしたツールです。
Appleが開発した機械学習フレームワークのMLXを使っているため、GPUを効率よく使って高速に処理できます。
同じことができるツールとしては「openai-whisper」や「faster-whisper」もありますが、Apple Silicon搭載のMacに限れば、mlx-whisperがもっとも速く動きます。

準備するもの

  • Apple Silicon搭載のMac(M1以降)
  • Python 3
  • ffmpeg

ffmpegは音声ファイルの読み込みに使われます。
Homebrewを入れている場合は「brew install ffmpeg」で導入できます。

インストール

インストールはコマンド一つで終わります。

pip3 install –user mlx-whisper

macOS標準のPythonを使っている場合、外部パッケージのインストールが拒否されることがあります。
そのときは末尾に「–break-system-packages」を付けてください。
インストール後、「mlx_whisper」というコマンドが使えるようになります。
コマンドが見つからないと言われる場合は、実行ファイルの置き場所にパスが通っていません。
「~/Library/Python/3.13/bin」のようなディレクトリにあるので、パスを通すか、フルパスで実行してください。
数字の部分はPythonのバージョンによって変わります。

実行する

日本語の音声を文字起こしする場合は、次のように実行します。

mlx_whisper 音声ファイル名.mp3 –model mlx-community/whisper-large-v3-turbo –language ja –output-format all

「–model」の指定は必ず付けてください。
省略すると、もっとも小さくて精度の低いモデルが使われてしまいます。
「–output-format all」を付けると、テキスト、字幕形式のSRT、VTT、TSV、JSONがまとめて出力されます。
テキストだけでよければ、この指定は不要です。
対応しているファイル形式は幅広く、mp3やm4a、wavはもちろん、mp4やmovといった動画ファイルもそのまま渡せます。
音声だけを事前に抜き出す手間はありません。

どれくらいの時間がかかるか

18分の音声ファイルで試したところ、全体で約4分でした。
内訳としては、初回のモデルのダウンロードに2分44秒かかっており、文字起こし自体は1分ほどで終わっています。
つまり実質的には、音声の長さの15分の1程度の時間で処理できる計算になります。
モデルは一度ダウンロードすればキャッシュされるので、2回目以降はこの待ち時間がなくなります。
ただしモデルのサイズは1.5GBほどあるので、ディスクの空き容量には注意してください。

精度について

人間の会話を録音した音声で試したところ、話者が入れ替わる場面や早口の部分も含めて、おおむね拾えていました。
一方で、固有名詞や造語は表記ゆれや誤変換が起きます。
聞き取りにくい箇所では、文脈に合わない言葉に置き換わってしまうこともありました。
そのまま公開できる品質ではないため、最終的には人の目で確認する前提で使うのがよいと思います。
固有名詞が多い音声の場合は、「–initial-prompt」で想定される単語をあらかじめ与えておくと、精度が上がることがあります。

もっと精度を上げたい場合

モデルを「mlx-community/whisper-large-v3-mlx」に変えると精度は上がります。
その代わり処理時間は3倍から4倍ほどになります。
逆に、内容をざっと把握したいだけであれば「mlx-community/whisper-medium-mlx」などの小さいモデルでも十分です。
用途に応じて使い分けるとよいと思います。

まとめ

文字起こしのサービスは有料のものが多く、音声を外部にアップロードする必要もあります。
mlx-whisperであれば、無料で、手元のMacだけで完結します。
会議の記録や取材音声など、外に出したくない音声を扱う場合にも向いています。

コメント

タイトルとURLをコピーしました