WhisperをRaspberry Pi 4で、DockerコンテナからPyAudioとWhisperを使用してUSBマイクからの音声入力の文字起こしをおこなう方法(2024年2月時点)
最終更新日:2024年2月14日
※ Whisperの最新バージョンで試してみました。
Whisper version: 20231117
PyAudio version: 0.2.14
torch version: 1.13.1
この記事では、Raspberry Pi 4にUSBマイクを接続して、音声を入力し、その入力した音声をWhisperに入力して文字起こしをおこなう方法を説明します。
私はデバイスのローカルにapt install…やpip3 install…でライブラリをインストールするのが嫌いなのでDockerコンテナ上で環境を構築していきます。
WhisperはPyTorchが必要なため、以下の記事で作成したマシンラーニングコンテナを使用します。このコンテナはRaspberry Pi 4でPyTorchが動作する環境を構築済みです。
環境
本記事を参考に、USBマイクからの音声入力の文字起こしを試すには以下のものが必要です。
Raspberry Pi 4
SDカード32GB (32GB以上であれば問題ないです)
USBマイク
USBマウス
USBキーボード
インターネット接続 (本記事は有線接続です)
Winodows10パソコン(Winodows10パソコンからRaspberry Pi 4とSSH接続して操作するために使用します。直接Raspberry Pi 4から操作する場合は不要です)
前提条件
Raspberry Pi 4のOSは64bit版であること。
Raspberry Pi 4にDockerをインストール済みであること。
以下の記事のマシンラーニングコンテナのDockerイメージを準備済みであること。
マシンラーニングコンテナのDockerイメージの確認
以下のコマンドを入力してDockerイメージを確認します。
$ sudo docker images
私の環境では以下のように表示されました。REPOSITORYがmlで、TAGがver1.00のイメージがマシンラーニングコンテナのDockerイメージとなります。
note@raspberrypi:~/Desktop $ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ml ver1.00 65cc7e31e5d8 3 months ago 2.08GB
note@raspberrypi:~/Desktop $
マシンラーニングコンテナの確認ができたら次に進みます。確認できない場合は、前提条件を見直してください。
作業フォルダの作成
Raspberry Pi 4のデスクトップにwhisperという名前のフォルダを作成します。デスクトップでマウスを右クリックし、New Folderを選択してwhisperと入力しOKを押します。
このwhisperフォルダをコンテナにマウントするため、必ずフォルダ名をwhisperにしてください。(大文字と小文字も区別するので注意です。先頭のwは小文字です。)
録音デバイスのデバイス名確認
Raspberry Pi 4にUSBマイクが接続されている状態で、以下のコマンドを入力します。
$ arecord -l
私の環境では以下のように表示されました。
note@raspberrypi:~/Desktop $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 3: Microphone [USB Microphone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
note@raspberrypi:~/Desktop $
Raspberry Pi 4に接続したUSBマイクの情報が表示されます。ここの、[USB Microphone]を覚えておきます。
マシンラーニングコンテナの作成
マシンラーニングコンテナのDockerイメージをもとにマシンラーニングコンテナを作成します。事前準備として以下の項目を確認します。
Raspberry Pi 4にUSBマイクを接続してあること
デスクトップにwhisperフォルダがあること
USBマイクのデバイスファイルをマウントするため、USBマイクを接続しないとコンテナの作成に失敗します。
デスクトップにwhisperフォルダがない場合は、作業フォルダの作成の目次に戻ってください。
事前準備が完了したら、以下のコマンドを入力します。コマンド中のUSERは、お使いの環境に合わせて変更してください。
※ pwdと入力するとUSERが何かわかるはずです。
※ コピペNGです。USERの部分は変更してください。
※ --rmオプションを付けていません。コンテナが不要になったらご自身で削除してください。(削除コマンドは、sudo docker rm コンテナIDです。)
$ sudo docker run -it --network host --name whisper --device=/dev/snd:/dev/snd --device=/dev/bus/usb:/dev/bus/usb -v /home/USER/Desktop/whisper:/whisper ml:ver1.00 bash
コマンド入力後、以下のようになります。
note@raspberrypi:~/Desktop $ sudo docker run -it --network host --name whisper --device=/dev/snd:/dev/snd --device=/dev/bus/usb:/dev/bus/usb -v /home/note/Desktop/whisper:/whisper ml:ver1.00 bash
root@raspberrypi:/#
以上でマシンラーニングコンテナの作成の説明は終了です。
マシンラーニングコンテナのマウント確認
Raspberry Pi 4のデスクトップのwhisperフォルダがマシンラーニングコンテナにマウントされているかを確認します。マシンラーニングコンテナ内で以下のコマンドを入力します。
ls
以下のようにwhisperフォルダがマシンラーニングコンテナ内に存在することがわかります。
Raspberry Pi 4のデスクトップのwhisperフォルダとマシンラーニングコンテナ内のwhisperフォルダは同期します。(同じものであるということです。)
root@raspberrypi:/# ls
bin boot dev etc home lib media mnt opt proc requirements.txt root run sbin srv sys tmp usr var whisper
root@raspberrypi:/#
以上でマシンラーニングコンテナのマウント確認の説明は終了です。
ライブラリのインストール
マシンラーニングコンテナにPyAudio、Whisperやそれに付随するライブラリをインストールします。以下のコマンドを順番に入力します。
インストールの途中でDo you want to continue? [Y/n] と表示されます。この場合は、yを入力してEnterを押します。
ここから先は
この記事が気に入ったらチップで応援してみませんか?