📙

Whisperで文字起こしする方法(ローカル環境にDockerを添えて)

2023/05/26に公開約2,500字

音声のテキスト変換

Web上にいくらでも情報があるWhisperでの文字起こしです。API使うとお金がかかるので、ローカル環境でDocker使って(Docker使えれば)手軽に実行できるのが特徴です。

CPUでもGPUでも動きます。Apple SiliconMacでもLinuxでも多分Windows(WSL2)でも動きます。

Dockerファイルや使うソフトはGitHubのリポジトリに公開しています。

https://github.com/karaage0703/whisper-docker

この記事は上記リポジトリの自分のための使い方のメモです。

使い方

ファイル準備

文字起こしする音声ファイルを用意します。ここではinput.mp3とします。

Docker準備

Dockerがない人は、Dockerをインストールしましょう。LinuxかWindows(WSL2)なら、とりあえず以下コマンドを実行すればOKです。Macの人はDockerデスクトップを使いましょう。

$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh | /bin/bash

Docker入れたら、Dockerビルドしましょう。以下の通りです。

$ git clone https://github.com/karaage0703/whisper-docker
$ cd whisper-docker
$ docker build -t whisper .

ここまでは1回やればOKです。

文字起こし

whisper-dockerディレクトリで以下コマンドを実行します。

$ docker run -it -d -v $(pwd):/workspace/ --net host --name whisper whisper
$ docker exec -it whisper bash

GPUを使いたい場合は以下の通りです。

$ docker run -it -d -v $(pwd):/workspace/ --net host --gpus all --name whisper whisper
$ docker exec -it whisper bash

コンテナに入ったら以下の通り実行すればinput.mp3というファイルをoutput.txtというファイルに文字起こしできます。初回のみモデルのダウンロードが必要ですが、2回目からは不要になります。

root@hostname:/workspace# python transcribe.py --model='base' --input_file='input.mp3' --output_file='output.txt' --language='ja'

入出力ファイルは--input_file--output_fileオプションで変更してください。

--modelでモデルサイズを選べます。largeとかにすると、モデル大きくなり認識性能が上がります(時間もかかります)。

サイズによる性能の違いは以下など参照ください。

https://ysdyt.hatenablog.jp/entry/whisper

おまけ:音声データの入手先

おまけ情報です。MacだとPodcastの音声データは、以下フォルダに格納されています。

`~/Library/Group Containers/243LU875E5.groups.com.apple.podcasts/Library/Cache`

ターミナルで以下実行すればフォルダを開けます。

$ open ~/Library/Group\ Containers/243LU875E5.groups.com.apple.podcasts/Library/Cache

参考: https://jp.quora.com/Macを使っていますがPodcastでダウンロードしたデータの保

とりあえず試してみるサンプルファイルが必要なときは以下とかがよいかなと思います。
http://pro-video.jp/voice/announce/

まとめ

文字起こしの方法を書きました。これで音声データさえ入手すれば文字起こし自由自在ですね。

私はCOTEN RADIOを文字起こししたくて、やってみました。baseモデルを使っても、そこそこ使える精度で文字起こしできます。ちなみにCOTEN RADIOさん、公式でも文字起こしをしています。以下でエピソード名で検索するとみることができます(ただ、一部のみなので私は結局文字起こしが必要でした)。

https://cotenradio.fm/?s

さらにChatGPTと組み合わせれば要約とかもできちゃいます。AI万歳ですね。ただ、もうちょっとゆったりとコンテンツを楽しむこともしたいものです。

また、ネットに公開されている情報でも、文字起こしした内容は基本的には私的利用に留めるのが良いかと思います。文字起こし内容をそのまま全部ネットに公開すると、著作物の改変などの問題になる可能性があるかと思いますので(専門ではないので、保証できません)。

関連記事

https://zenn.dev/karaage0703/articles/d47bbb085fcb83

Discussion

ログインするとコメントできます