見出し画像

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コンテナ上で環境を構築していきます。

WhisperPyTorchが必要なため、以下の記事で作成したマシンラーニングコンテナを使用します。このコンテナは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

私の環境では以下のように表示されました。REPOSITORYmlで、TAGver1.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を押します。

ここから先は

12,935字 / 1ファイル

この記事が気に入ったらチップで応援してみませんか?