faster-Whisper、ChatGPT API、VOICEVOX coreを組み合わせた音声対話システムです。ASR、TTSをローカル環境で動かし、高速なレスポンス生成を実現しています。
Qiita記事はこちら->https://qiita.com/kazu44ttaka/items/54daefa3cbc81718f284
- Windows OS
- それなりのスペックをもったデスクトップPC
- Intel 第13世代以上かそれに相当するCPU
- VRAM 6GB以上のNVIDIA製GPU
- Python 3.12.7
- ほかのバージョンでの動作は確認していません
- CUDA 12.6以上
- 対応するcuDNNもインストールしてください
- 11.xは動かない可能性が高いです
※このレポジトリのコードはMITライセンスで公開されています。各ライブラリのライセンスについては対応するgithubレポジトリを参照してください。
まず、レポジトリをローカル環境へクローンしましょう。
git clone https://github.com/kazu44ttaka/My-SDSお好みのPython仮想環境上にrequirements.txtに書かれているパッケージをインストールしてください。
Pytorchに関してはrequirements.txtに書かれていないので、ご自身のCUDA環境にあったバージョンを手動でインストールしてください。
私の場合はCUDA 12.6なので、以下のようにPytorchをインストールします。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126ASRにはfaster-Whisperというものを使います。
https://github.com/SYSTRAN/faster-whisper
こちらは高性能ASRモデルであるWhisperをリアルタイム動作用にカスタマイズしたもので、これを用いればローカル環境で高速かつ高性能なASRを実現できます。
セットアップといってもやることは一つで、対応するPython ライブラリのインストールです。
pip install git+https://github.com/guillaumekln/faster-whisper.git初回動作時に指定されたモデルが自動でダウンロードされます。
推論に用いるモデルのデフォルトはlarge-v3となっていますが、処理が重い場合はパラメータでmediumなどに変えることができます。各モデルは初回実行時に自動でダウンロードされます。
TTSにはVOICEVOX coreというものを使います。
https://github.com/VOICEVOX/voicevox_core
こちらは有名なVOICEVOXという読み上げソフトウェアの音声合成コアで、ローカル環境で高速に音声合成を行うことができます。 以下の作業をインストールガイドを見ながら行ってください。
Windows版のダウンローダをReleasesからダウンロード、先ほどクローンした場所(C: \...\My-SDS)に配置し、それを起動してVOICEVOX coreのインストールを行ってください。 インストールが完了したら以下のようにvoicevox_coreというファイルが生成されていると思います。
次に、対応するVOICEVOX coreのPython ライブラリをpipでインストールしてください。執筆時点での最新バージョンは0.16.0ですので、この場合のpipコマンドは以下のようになります。
pip install https://github.com/VOICEVOX/voicevox_core/releases/download/0.16.0/voicevox_core-0.16.0-cp310-abi3-win_amd64.whlここまででTTSのセットアップは完了です。
合成される音声のデフォルトは春日部つむぎになっていますが、TTSのパラメータで好きな音声を指定することができます。
レポジトリをクローンした場所(C: \...\My-SDS)にChatGPTに与えるプロンプトを書いたテキストファイルをおいてください。ファイル名は例えばprompt.txtなどとし、下記のようにmain.pyの冒頭で指定してください。
たとえば、プロンプトの例は以下のようになります。
あなたはユーザーと雑談を楽しむカジュアルな会話パートナーです。
口語的な自然な日本語で話し、短いフレーズで返答してください。
質問には答えすぎず、会話が続くようにユーザーにも質問を返してください。
表情豊かな語り口で、親しみやすさを重視してください。
以下から会話が始まります。先ほどと同じ場所に、OpenAIから発行されるAPI Keyを格納したテキストファイルをおいてください。Keyの発行方法などは別途記事を参照してください。ファイル名は例えばkey.txtなどとし、下記のようにGPT.pyの冒頭で指定してください。
main.pyがメインプログラムになっています。これを実行し、以下のようにListening... Ctrl+C to stop.と表示されたら話しかけます。
↓動作例(音が出ます)
https://www.youtube.com/embed/XXmTUK0o3Pg?si=ju7k5aHi7PIIrEB4
CV:VOICEVOX、春日部つむぎ
https://github.com/SYSTRAN/faster-whisper


