こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- Pythonを用いて、ChatGPTで生成した文書を音声ファイルに変換する方法が知りたい
【OpenAI】ChatGPTとは?

ChatGPTとは、OpenAIが開発した対話型チャットボットのモデルです。ChatGPTの名前は、GPT-3という第3世代の生成言語モデルに由来しています。
ChatGPTのモデルには、人工知能(AI)が搭載されており、人間の発話に対して自然なやり取りを可能にしています。また、英語をはじめ、中国語、日本語、フランス語など複数言語を認識し、人間らしく応答できるのも特徴的です。
さらに、ChatGPTではチャットの他に、画像生成など近年多様な機能がリリースされてます。以下、ChatGPTで代表するGPTモデルおよびOpenAIが提供するAPI機能一覧を示します。
- チャット機能
- テキストから画像を生成
- オーディオを文字起こし
- Python、SQL、JavaScript等のコードを理解
- 問題あるネガティブ発言検出
- テキスト文章のベクトル変換
【参考】OpenAI社のAPI利用方法

本記事ではChatGPTを用いたPythonプログラミングについて解説します。その際、Open AIが提供するAPI情報が必要になります。「ChatGPTの概要」および「API情報の取得手順」については、こちらの記事で詳しく解説しています。

【参考】ChatGPTを詳しく学びたい方向けの学習講座
ChatGPTを詳しく学びたい方向けに安価で学べるオンライン講座も併せてご紹介します。
【事前準備】Pythonライブラリのインストール
ChatGPTで生成した文章を音声ファイルに変換する場合、以下2つのライブラリを活用します。
コマンドプロンプト(WIndows)またはターミナル(Mac)をもとに、ライブラリをインストールしましょう。
OpenAI
OpenAIが提供するChatGPT APIをPython環境で利用するためのライブラリです。
pip install openai
gTTS
Googleが提供するテキストの音声変換API(Google Text To Speech)であり、Python環境で利用する場合、gTTSというライブラリをインストールします。
pip install gTTS
【Python実践】ChatGPTで生成したテキストを音声ファイルに変換
それでは実際にPythonコードを記述し、ChatGPTで生成したテキストデータを音声ファイルに変換する方法を解説していきます。
PythonライブラリとAPI情報の読込
はじめに、Pythonプログラムの先頭にライブラリとAPI認証情報を記述します。
前述で取得したAPIのシークレットキー
を入力しましょう。
from openai import OpenAI
from gtts import gTTS
OPENAI_API_KEY = "<APIシークレットキーをここに入力>"
ChatGPT APIによる文章生成
続いて、ChatGPT APIに任意のメッセージを渡し、文章を生成します。以下のコードを実行しましょう。
コード
def response_chat(message:str)->str:
# ChatGPT実行
client = OpenAI(api_key=OPENAI_API_KEY)
completion = client.responses.create(
model = "gpt-5", # モデル
input = message, # 入力メッセージ
reasoning = {"effort":"medium"}, # 推論種別
text = {"verbosity":"medium"}, # 生成トークン数
)
# 応答内容
response = completion.output_text
return response
出力イメージ
上記実行後にresponse
を見ると、次のような出力結果が確認できます。
# 応答確認
message = "なぜ地球が丸いのか知りたい!"
response = response_chat(message)
# 出力イメージ
# 地球が丸い理由は、重力と回転によるものです。
# 1. 重力: 地球は非常に大きな質量を持っており、その質量が重力を生み出します。重力は物体を中心に引き寄せる力であり、地球の場合は地球の中心に向かって引力が働きます。この重力によって地球の物質は均等に引き寄せられ、球体の形状を作ります。
# 2. 回転: 地球は自転しており、自転軸を中心に一定の速さで回転しています。この回転によって、地球の物質は中心から外側に向かって遠心力が働きます。遠心力は物体を中心から外側に押し出す力であり、地球の場合は遠心力が地球の表面を均等に押し出すことで球体の形状を維持しています。
# これらの要素によって、地球は球体の形状を持つことになります。ただし、地球は完全な球体ではなく、赤道付近がやや膨らんでいる楕円体の形状をしています。これは地球の自転による遠心力が赤道付近で最大になるためです。
テキストデータの音声変換(Text-To-Speech)
前述で取得したテキストデータを音声ファイルに変換する場合、以下のコードを実行します。実行方法としてOpenAIのAPIを活用する方法とGoogle APIを活用する方法2つを紹介します。
OpenAI API
OpenAIのAPIを用いてテキスト情報を音声に変換する場合、以下のコードを実行します。
from openai import OpenAI
def text_to_speech_openai(message:str,output_file_path:str)->str:
client = OpenAI(api_key=OPENAI_API_KEY)
with client.audio.speech.with_streaming_response.create(
model = "gpt-4o-mini-tts", # モデル名
voice = "coral", # 声質
input = message, # 入力メッセージ
instructions = "落ち着いた声で話すこと", # 音声会話時の指示
) as response:
# ファイル保存
response.stream_to_file(output_file_path)
# 実行例
output_file_path = "output/speech.mp3"
text_to_speech_openai(response,output_file_path)
Google API
GoogleのAPIを用いてテキスト情報を音声に変換する場合、以下のコードを実行します。
# gTTSインスタンスの作成
text2speech = gTTS(response, # 音声変換するテキスト
lang="ja", # 対応言語(ja:日本語)
)
# 音声変換したデータをファイルに保存
text2speech.save("chatgpt_text2speech.mp3")
実行後、chatgpt_text2speech.mp3
というファイルが生成されます。実際に音声変換されているか確認してみましょう。
【参考】AI・機械学習における配信情報まとめ
当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。
【仕事探し】副業・転職・フリーランス
【教育】おすすめ勉強法
【参考】記事一覧
最後に

お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら