OpenAI 提供了強大的 API,可用於將文字轉換為語音(Text-to-Speech, TTS),其簡單易用的設計,讓開發者能快速實現多樣化的應用。在這篇文章中,我們將介紹如何使用 OpenAI 的文字轉語音功能,並透過範例程式碼進行詳細解說。
需求準備
在開始之前,您需要:
- OpenAI API 金鑰。
- 安裝 OpenAI 的 Python SDK。
- 開發環境,如 Python 3.x。
範例程式碼
以下是範例程式碼,檔案名為 openai_tts.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# coding=UTF-8 from pathlib import Path from openai import OpenAI import openai client = OpenAI() speech_file_path = "/mnt/d/tts.mp3" #response = client.audio.speech.create( # model="tts-1", # voice="alloy", # input="我想要從台灣到全世界旅遊", #) #response.stream_to_file(speech_file_path) with client.audio.speech.with_streaming_response.create( model="tts-1", voice="alloy", input="中華民國是在1911年由孫中山先生建立的. 目前已是民國113年" ) as response: response.stream_to_file(speech_file_path) |
程式碼解說
引入必要模組
首先,程式引入了必要的模組 Path
和 OpenAI
,確保可以操作檔案路徑並使用 OpenAI 的 API。
1 2 3 |
from pathlib import Path from openai import OpenAI import openai |
建立 OpenAI 客戶端
使用 OpenAI()
建立 API 客戶端,這是所有操作的核心。
1 |
client = OpenAI() |
API 金鑰設定
建議會使用環境變數來指定 API key, 將 API Key 寫在文件中比較有安全風險。
1 |
export OPENAI_API_KEY="your_api_key_here" |
定義語音輸出檔案路徑
指定生成的語音檔案將存儲於的路徑。
1 |
speech_file_path = "/mnt/d/tts.mp3" |
生成語音並儲存檔案
使用 OpenAI 的 audio.speech.create
方法將文字轉換為語音。這裡採用模型 tts-1
和語音樣式 alloy
。以下是如何執行的範例:
- 單次語音生成(註解部分)
這段程式碼已被註解掉,適用於生成較短的文字轉語音檔案:
1 2 3 4 5 6 |
# response = client.audio.speech.create( # model="tts-1", # voice="alloy", # input="我想要從台灣到全世界旅遊", # ) # response.stream_to_file(speech_file_path) |
流式生成語音
使用 with_streaming_response
方法處理較長的文字輸入。這種方式可以即時生成和儲存檔案:
1 2 3 4 5 6 |
with client.audio.speech.with_streaming_response.create( model="tts-1", voice="alloy", input="中華民國是在1911年由孫中山先生建立的. 目前已是民國113年" ) as response: response.stream_to_file(speech_file_path) |
在這裡,我們將內容 "中華民國是在1911年由孫中山先生建立的. 目前已是民國113年"
轉換為語音並儲存為 tts.mp3
。
如何執行程式碼
確保您已安裝必要的 Python 套件:
1 |
python openai_tts.py |
執行程式:
確認輸出檔案是否已正確生成於指定的路徑。
結語
OpenAI 的文字轉語音功能操作簡單,且能生成高品質的語音檔案,非常適合用於語音助手、語音導航等應用場景。希望本文的介紹與範例程式碼能幫助您快速上手。