【Python】ChatGPTでの生成テキストを音声ファイル変換|Text-To-Speech機能の構築方法

当ページには広告が含まれています。

こんにちは、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情報の取得手順」については、こちらの記事で詳しく解説しています。

あわせて読みたい
【Python×ChatGPT】チャットボット作成入門|OpenAI APIの利用申請手順も解説 「ChatGPT APIの利用手順」と「Pythonで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・機械学習案件の探し方」についても詳しく言及しています。

【仕事探し】副業・転職・フリーランス

【教育】おすすめ勉強法

【参考】記事一覧

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次