2023年07月24日 更新

ColaboratoryでChatGPT APIとVOICEVOXをサクッと連携

どうも、クラゲジュニアです。

超低料金で使える「ChatGPT API」と無料で使える「Colaboratory」「VOICEVOX」を活用して、AIのチャットを声に出すプログラムを作りました。

クラゲジュニアは「初期設定」と「実行」を2つのセルにコンパクトにまとめています。

Chat GPT APIについて

「ChatGPT」はアカウントを作成すれば誰でも無料で実行できますが、例えば、「音声読み上げとの連携」などサービスをカスタマイズすることはできません。

一方で「ChatGPT API」を活用することで、プログラミングと組み合わせることで自由に連携やカスタマイズすることが可能となります。その代わり、事前にクレジットカード登録が必要で、実行する度に課金されます。ただし、非常に低料金です。

https://platform.openai.com/

API KEYは各自で取得してください。

コード

Open In Colab

こちらの画像をクリックすることで、すぐに実行できるColaboratoryコードが開きます。XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXは取得したAPI KEYに書き換えてから実行してください。

解説

#ChatGPTの初期設定
!pip install openai
import openai
openai.api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

#VOICEVOXの初期設定(2023/07/24修正)
!curl -sSfL https://raw.githubusercontent.com/VOICEVOX/voicevox_core/8cf307df4412dc0db0b03c6957b83b032770c31a/scripts/downloads/download.sh | bash -s
%cd voicevox_core/
!wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.14.1/voicevox_core-0.14.1+cpu-cp38-abi3-linux_x86_64.whl
!pip install voicevox_core-0.14.1+cpu-cp38-abi3-linux_x86_64.whl
!wget https://raw.githubusercontent.com/VOICEVOX/voicevox_core/406f6c41408836840b9a38489d0f670fb960f412/example/python/run.py
from IPython.display import Audio

1つ目のセルは最初に1回だけの実行でOKです。VOICEVOXの初期設定は少し時間がかかります。

#ChatGPTの実行
text = "クラゲについて、1行で教えてください"
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo",  messages=[{"role": "user", "content": text}])
text = str(completion.choices[0].message.content).replace("\n", "。").replace(" ", "")

#VOICEVOXの実行(2023/06/15修正)
speaker_id = 0
!python ./run.py --dict-dir "./open_jtalk_dic_utf_8-1.11" --text $text --out "../data.wav" --speaker-id $speaker_id
Audio("../data.wav", autoplay=True)

2つ目のセルで簡単にカスタマイズできます。

  • textに代入している文字列を変更すれば、AIに対して送信するメッセージが変わる。
  • speaker_idに代入している数値を変更すれば、キャラクターの音声が変わる。

改行や半角スペースはVOICEVOXでエラーになるため、別の文字に変更しています。speaker_idについてはこちらを参照してください。

※API KEYが流出しないよう、ご自身の責任で管理と実行を願います。

以上です。