自然会話ロボットの製作-ChatGPT-APIを利用(Pythonプログラム)

以前に”自然会話ロボット”に挑戦し、製作しましたが、NTTドコモの”雑談会話API”が使用できなくなり、代わりに供給されたAPIにうまく切替対応できず、ロボットはほったらかしになっていました。
今回利用できるようになったChatGPT-APIを利用すれば、自然会話ロボット(ChatRobot)が製作できるのでは?と思い、チャレンジしてみました。

1.ハード構成
 ・Raspberry Pi 4B(4G) および Rspberry Pi OS(Bullseye)
 ・マイク USB-microphone (MM-MCU03BK サンワサプライ)
 ・スピーカー Raspberry Piの音声出力-3.5㎜ジャック出力 小型アンプを通してスピーカーへ
   小型アンプ:PAM8012 秋月電子
   スピーカー:50mmダイナミックスピーカー 0.5W 8オーム
   その他:3.5mmステレオミニプラグ、小型VR 2Kオーム

    

2.各機能別プログラム 
2-1 音声入出力
 自然会話ロボットのプログラム作成時の手順で、ほぼ完成。
 音声入出力関係のパッケージのインストール
  $ sudo apt-get install alsa-utils sox libsox-fmt-all
 音声合成で使用するOpenJtalk関連のモジュールインストール
  $ sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
  女性の声での応答を希望する場合は、
   $ sudo wget https://ja.osdn.net/projects/sfnet_mmdagent/releases/
   $ sudo unjip MMDAgent_Example-1.8.zip
   $ sudo cp -r MMDAgent_Example-1.8/Voice/mei /usr/share/hts-voice/
 プログラムとしては、
USB-microphoneからの音声を録音する。 test-listen-1.py
 録音された音声を、テキスト文にして、表示すると共に小型アンプを通したスピーカーから出力する。                                          test-speak-1.py

 参考図書
  自然会話ロボットを作ろう 鄭立[著] 秀和システム

2-2 音声認識
 マイクを通して録音された音声を言語とみなして認識し、テキスト文に変換する。
 juliusを使用した音声認識の記事がネット上でいくつか見られた。私も試してみたが、ダウンロード後のコンパイルがうまくいかず、あきらめた。
 さらに調査の結果、Googleアシスタント等で利用されている方法(SpeechRecognition)が、研究・開発用であれば無料で使用可能なので、使用することにした。実行プログラムは、
testrecognize.py 

 $ sudo pip install SpeechRecognition

2-3 ChatGPTとの会話
 ”生成AIの利用2-ChatGPT-API”で示したプログラム。
 テキスト文に変換された音声をAIに送信し、AIからの回答(テキスト文)を表示する。

2-4 音声入出力を使ったChatGPTとの会話
 以前作成した自然会話ロボットとよく似た処理で、下記のような、音声中心のChatRobot処理。
 入力の呼びかけ→ChatGPTへの質問(マイクから)→音声をテキスト文に変換→質問文を表示。ChatGPTへ問いかけ→ChatGPTからの回答
→回答(テキスト文)を表示。音声に変換し、スピーカーから出力
 上記のようなループを繰り返す。
  gptchatrobot-4.py

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする