はじめに
インフラ整備の一環とDockerの練習を兼ねて、文字起こしツールのWhisperをDocker化してみました。この記事ではDockerを利用してWhisperを実行する方法について説明しています。(Docker化する方法についての記事ではありません)
Whisperとは
Whisperは、chatGPTで有名なOpen AIが提供する音声認識モデルです。Whisperを利用することで、英語や日本語など様々な言語の音声データを高精度にテキストデータに変換することが可能です。議事録の自動作成や翻訳に一役買うこと間違いなしでしょう。
今回利用するのはこちらのモデルです。
Dockerの簡単な説明
Dockerはコンテナ型の仮想環境を簡単に作成・配布・実行できるプラットフォームです。GitHubがコードの共有を容易にするように、Dockerは環境の共有を可能にします。
Dockerは「イメージ」と「コンテナ」という2つの概念に基づいています。イメージは環境の設計図のようなもので、これを元に実行環境であるコンテナを作成します。イメージはDocker Hubで共有することができるため、誰でも同じ環境を手軽に再現できます。
Dockerを使えば「あの人のパソコンでは動いているのに自分のパソコンでは動かない!」というあるあるを減らすことができます。
興味がある方は、こちらの動画などを参考にして、Dockerの基本を理解してみてください。
使い方
ファイルの準備
まず最初に、文字起こししたいwavファイルを適当なディレクトリに入れて、わかりやすい場所に配置してください。
Whisperの実行
1.Dockerのインストール
Dockerをインストールしていない人はこの動画(windowsはこちら)を見てインストールしてください。
2.Dockerにログイン
ここからはターミナルを使用します。
Dockerにログインするために、以下のコマンドを実行し、ユーザーネームとパスワードを入力します。
docker login
3.イメージをダウンロード
Docker Hub(hidakakombu)からイメージをダウンロードします。
docker pull hidakakombu/whisper:1.0
4.イメージからコンテナを起動 (2回目以降はここから実行)
次に、イメージからコンテナを起動します。
ここでは、自分のパソコンの"/Users/hogehoge/Desktop/whisper"ディレクトリと、コンテナの"/app"ディレクトリを同期させています。"/Users/hogehoge/Desktop/whisper"の部分には、先ほど準備したwavファイルが入っているディレクトリのパスを入力してください。
docker container run -it --rm -v /Users/hogehoge/Desktop/whisper:/app hidakakombu/whisper:1.0
コンテナが起動するとターミナルのプロンプト表示が次のようになります。
root@3ea5ef67e8dd:/app#
5.Whisperの実行
以下のコマンドを使って、Whisperで文字起こしを行います。
../whisper/main -m ../whisper/models/ggml-large.bin -f sample.wav -l en -t 8 > sample.txt
- sample.wav : 文字起こししたいwavファイルの名前。
- sample.txt : 出力されるtxtファイルの名前。
- -l : 言語の指定。英語の場合は en 、日本語の場合は ja 、わからない場合は None を指定します。
6.コンテナの停止
文字起こしが完了したら、コンテナを停止します。
exit
結果の確認
文字起こしが成功していれば、こんな感じのtxtファイルがwavファイルと同じ場所に生成されているはずです。
[00:00:00.000 --> 00:00:04.000] Alright, so here we are in front of the elephants.
[00:00:04.000 --> 00:00:12.000] The cool thing about these guys is that they have really, really, really long trunks.
[00:00:12.000 --> 00:00:14.000] And that's cool.
[00:00:14.000 --> 00:00:19.000] And that's pretty much all there is to say.
さいごに
皆さんもwhisperを使って幸せな文字起こしライフを送りましょう!
参考
DockerHub & Dockerfile