アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【OpenAI/ChatGPTMacOSUbuntu
OpenAIのText to Speech APIで日本語テキストを読み上げる
POSTED BY
2023-12-16

MacOSにはPythonが最初から入っているので、Python版を使ってみる。

  1. which python3
  2. /usr/bin/python3
  3.  
  4. python3 -V
  5. Python 3.9.6
  6.  
  7. which pip3
  8. /usr/bin/pip3

OpenAIライブラリのインストール

  1. pip3 install openai

OpenAIサイトでAPIの使用契約(クレジットカード登録)は済ませているものとする。

https://platform.openai.com/api-keys

APIキーを確認して環境変数にセットする。ここでは.profileや.bashrcにセキュア設定ファイル.bash_securesを読み込ませるようにしている。

  1. cat >> .bash_secures
  2. export OPENAI_API_KEY="YOUR-OPENAI-API-KEY"
  3.  
  4. chmod go-rwx .bash_secures

  1. if [ -f "$HOME/.bash_secures" ]; then
  2. . "$HOME/.bash_secures"
  3. fi

まずは公式サンプルをそのまま実行してみる。tts.pyというファイル名で保存するとする。

  1. from pathlib import Path
  2. from openai import OpenAI
  3. client = OpenAI()
  4.  
  5. speech_file_path = Path(__file__).parent / "speech.mp3"
  6. response = client.audio.speech.create(
  7. model="tts-1",
  8. voice="alloy",
  9. input="Today is a wonderful day to build something people love!"
  10. )
  11.  
  12. response.stream_to_file(speech_file_path)

実行

  1. pytyon3 tts.py

エラーが無ければspeech.mp3というファイルができるので、これをダブルクリックして読み上げ再生確認。inputを「あいうえおかきくけこ」と日本語に変更しても、ちゃんと読んだ。

https://platform.openai.com/docs/api-reference/audio/createSpeech

に、詳しいAPI仕様がある。これによると、入力テキストは4096文字までで、声優モデルはalloy, echo, fable, onyx, nova, and shimmerが設定できる。

日本語もちゃんと読むのだが、やはり上記全員アメリカ人とあって、読み上げが全部結婚式で誓わせるエセ神父っぽくなるのは仕方ないか。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】