ChatGPTを音声認識で使う
最近かなりChatGPTを使い込んでいて、少しでも楽に使用するために音声認識を使い始めました(笑)
AndroidではGoogleキーボードやアプリ版ChatGPTで音声認識が簡単にできるのですが、うちのWindows10ではうまく行かなかったので別の方法を試してみました。
Voskという選択肢
音声認識自体も「できればオンラインAPIを使いたくないな」と思っていたのですが、Voskという音声認識ツールを知り、試してみることにしました。
以下の記事で紹介されていたVoskを使った音声認識のコードにGUIと仮想キーボード(クリップボード経由)を実装してみました。
元記事の筆者様には本当に感謝です。
発話区間認識機能まで用意してくださっていて、手元ではうまく動作したのでそちらのバージョンを改造しました。
GUIをつけて、仮想キーボードとして動作するようにしたソースコードはこちら。
https://gist.github.com/mikurins/f54a4fabae92c81d7e4bf763e7884d33
いくつかライブラリを使用するので、エラーメッセージが出たらpip installで準備してください。
必須のライブラリは以下です。
・vosk
・sounddevice
・numpy
・pyperclip
何か足りない場合は各自でインストールしてください。
音声モデルのダウンロード先はこちら。
https://alphacephei.com/vosk/models
ラージモデルでも動作しました。
スクリプトと同じ場所に、フォルダ名を「model」として設置してください。
動作イメージ
正常に起動すると専用スレッドで音声認識が始まります。
「クリップボード経由の自動入力を有効化」のチェックボックスをチェックしておくと、任意のアプリへの仮想キーボードとして動作させることができます。
チェックを外すとクリップボード貼り付けは停止し、GUI画面のみに出力されます。
「clear」ボタンを押すと画面クリアするだけです。
私はこれでChatGPTへの指示を爆速で入力できるようになりました。
思ったより認識精度が高くてすばらしいです。
オフラインで動作するのも安心ですね。
※Windows10のPython 3.10.6で動作確認しました。