はじめに
これ
— 橘 あい (@tcbn_ai) March 22, 2023
誰か考えてる人いるだろうけど、ChatGPTのプロンプトに自分で音声入力してその出力を取得してボイロに読ませたらボイロと擬似的な会話できるよね
なんかそういうAPIとか誰か作ってそうだから調べたらたくさん出てきそう
ChatGPTと作業(雑談)通話的なことできそうだよね
なんかふとボイスロイドと擬似的な会話をしたくなったので、それっぽいのを作ってみました。
(肉声が入ってます)
— 橘 あい (@tcbn_ai) March 23, 2023
音声認識のためのパッケージと、OpenAIのAPIと、コンソールでボイスロイドを制御するソフトウェアを使って、ボイスロイドと擬似的な会話をできるようにしました!
ソースコード:https://t.co/fB93Vm20FN pic.twitter.com/2fvBAEcaqs
今回は、作ったものについて簡単に紹介しようと思います。作ったものはGitHubリポジトリで公開しました。
実現したいことと必要な機能
今回は、『自分の声で話しかけたら反応を返してくれる』ことを実現しようと考えた。具体的には以下の5つの機能が必要だと考えた。
- (1) PCに接続したマイクに入力した音声をテキストに変換する(音声認識)
- (2) テキストをOpenAIのAPIに入力
- (3) ChatGPT等の出力を取得
- (4) 出力されたテキストデータをVOICEROIDに入力
- (5) VOICEROIDが音声を出力
実現方法
(1)
(1) については、Python の音声認識ライブラリ SpeechRecognition がかなり精度よく音声認識をしてくれることが分かったので、このライブラリを使うことにしました。
(2), (3)
(2) と (3) については、OpenAI のライブラリ を使って実装可能。
(4), (5)
(4) と (5) については、AssistantSeika で実現可能。Python の subprocess
モジュールを使う。
実装
いつも使っている Python で実装しました。3/22 の仕事後に思いついて、3/23 の仕事後にできたので、3~4時間くらいで実装できた気がします。
動作確認
自分の声が入っていて恐縮ですが、動作確認のために短めの対話をしました。制約を設けることで、ある程度『それっぽい』会話になっているのではないでしょうか。
まとめ
たまにうまく音声を認識してくれなかったり、認識した文章がおかしいときは挙動がおかしくなったりしますが、ある程度うまく機能するものができた気がします。
無料期間が終わったら使えなくなりそうなので、今のうちに楽しみたいです。