イントロダクション
-
最近、C++/Qtを使って音声認識ツールのソフトウェアを開発しており、その中でOpenAIのwhisper.cppを試しています。
-
whisper.cppは、OpenAIのWhisperモデルのC/C++移植実装であるオープンソースプロジェクトです。
-
OpenAIのWhisperは、大量の多言語および多タスクの監視データでトレーニングされており、複数の言語での音声認識、音声翻訳、言語識別などのタスクを実行できる自動音声認識(ASR)システムです。whisper.cppプロジェクトは、このモデルをWindows、Mac OS、Linux、Android、WebAssemblyなど、さまざまなプラットフォームでローカルに実行できるようにします。
-
whisper.cppの主な利点は以下の通りです:
-
依存関係なし:whisper.cppは、外部ライブラリやフレームワークをインストールする必要がなく、C/C++コンパイラさえあればコンパイルして実行できます。これにより、外部ライブラリへの依存が減ります。
-
軽量:whisper.cppライブラリは非常に小さく、1つのソースファイルで構成されているため、プロジェクトに統合しやすく、大小問わず過剰な負担をかけません。
-
高性能:テンプレートメタプログラミングとC++17の特性を活用することで、whisper.cppは実行時にほとんど追加のオーバーヘッドがありません。タイプセーフな方法を使用し、イベント処理の効率が保証されています。
-
シンプルで使いやすい:デザインがシンプルでわかりやすく、APIが使いやすいため、開発者はすぐにイベント駆動型のコードを書くことができます。
手順
- step1 コードをダウンロード
git clone https://github.com/ggerganov/whisper.cpp
- step2 モデルをダウンロード
whisper.cppプロジェクトのルートディレクトリに「models」フォルダがあります。その中に移動して、コマンドでモデルをダウンロードします。以下はCMDコマンドです。CMDで実行してください:
download-ggml-model.cmd small
またはシェルコマンド:
download-ggml-model.sh medium
もし上記の2つの方法がうまくいかない場合は、次のURLから手動でダウンロードできます:
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin
- step3 コンパイル
上記の2つの手順が成功した後、Whisper.cppプロジェクトの「build/bin」ディレクトリでmain.exeを生成します:
cmake .
mingw32-make
- step4 実行
ルートディレクトリに移動して、次のコマンドを実行すると、ターミナルに認識された字幕が表示されます:
.build/bin/whisper-cli.exe -m ./models/ggml-small.bin -f ./samples/jfk.wav