【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認証情報を記述します。

前述で取得したOrganization IDシークレットキーもそれぞれ入力しましょう。

import openai
from gtts import gTTS

openai.organization = "<Organization IDをここに入力>"
openai.api_key      = "<APIシークレットキーをここに入力>"

ChatGPT APIによる文章生成

続いて、ChatGPT APIに任意のメッセージを渡し、文章を生成します。以下のコードを実行しましょう。

コード

message = "なぜ地球が丸いのか知りたい!"

# ChatGPT実行
completion = openai.ChatCompletion.create(
             model    = "gpt-3.5-turbo",     # モデルを選択
             messages = [{
                        "role":"user",
                        "content":message,   # メッセージ 
                        }],

             max_tokens  = 1024,             # 生成する文章の最大単語数
             n           = 1,                # いくつの返答を生成するか
             stop        = None,             # 指定した単語が出現した場合、文章生成を打ち切る
             temperature = 0.5,              # 出力する単語のランダム性(0から2の範囲) 0であれば毎回返答内容固定
)

# 応答内容
response = completion.choices[0].message.content

出力イメージ

上記実行後にresponseを見ると、次のような出力結果が確認できます。

# 応答確認
print(response)

# 出力イメージ
# 地球が丸い理由は、重力によるものです。
# 地球は非常に大きく、その重力は、地球の中心に向かって引っ張り合い、地球を球形に形成する力を生み出します。
# また、地球は自転しており、自転によって地球の形が丸くなります。
# このため、地球は球形をしています。

テキストデータの音声変換(Text-To-Speech)

前述で取得したテキストデータを音声ファイルに変換する場合、以下のコードを実行します。

# gTTSインスタンスの作成
text2speech = gTTS(response,   # 音声変換するテキスト
                   lang="ja",  # 対応言語(ja:日本語)
                  )


# 音声変換したデータをファイルに保存
text2speech.save("chatgpt_text2speech.mp3")

実行後、chatgpt_text2speech.mp3というファイルが生成されます。実際に音声変換されているか確認してみましょう。

【参考】AI・機械学習における配信情報まとめ

当サイトではAI・機械学習における「基礎」から「最新のプログラミング手法」に至るまで幅広く解説しております。また「おすすめの勉強方法」をはじめ、副業・転職・フリーランスとして始める「AI・機械学習案件の探し方」についても詳しく言及しています。

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

【教育】おすすめ勉強法

【参考】記事一覧

最後に

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

目次