如何使用OpenAI將文字轉換為語音

OpenAI 最近推出了音訊 API,其中包括基於其 TTS(文字到語音)技術的文字到語音功能 – speech。該功能提供六種內建語音,分別為 AlloyEchoFableOnyxNovaShimmer

如何使用OpenAI將文字轉換為語音

這些聲音對於敘述部落格文章、建立各種語言的口語音訊、為視訊教程新增畫外音或提供實時口語反饋等任務非常有用。根據我的經驗,輸出的聲音非常自然,令人印象深刻。如果您沒有使用任何文字到語音工具,那麼 OpenAI 的這款產品值得您考慮嘗試。

在本文中,我們將探討如何設定 OpenAI 的 TTS 並建立第一個文字到語音應用程式。在本演示中,我們將使用以下設定:

  • 作業系統 – macOS
  • 應用程式 – 終端
  • 程式語言 – cURL

本指南同樣適用於 Windows 使用者。必要時,我會提及與 macOS 上使用的工具和命令不同的工具和命令。

步驟 1 – 設定 cURL

許多作業系統都預裝了 cURL。如果沒有,我們將首先安裝 MacOS 的軟體包管理器 Homebrew,然後使用它來安裝 cURL。

檢查 cURL 是否已安裝

要檢查系統中是否已安裝 cURL,請確保已連線網際網路,然後在終端中鍵入以下命令:

Windows 使用者:使用命令提示符或 Windows PowerShell

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl https://platform.openai.com
curl https://platform.openai.com
curl https://platform.openai.com

如果 cURL 設定正確且已連線網際網路,它將傳送 HTTP 請求以檢索 platform.openai.com 的內容,你應該會看到與此截圖類似的輸出:

檢查 cURL 是否已安裝

如何安裝 cURL

如果遇到提示未安裝 cURL 的錯誤,可以按照提供的步驟進行安裝。

Windows 使用者:如何在 Windows 上安裝 cURL

開啟一個新的終端視窗,輸入以下命令首先安裝 Homebrew:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安裝 Homebrew 後,使用以下命令安裝 cURL:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
brew install curl
brew install curl
brew install curl

最後,執行下面的命令將自制版本的 cURL 設定為 shell 中的預設版本:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo 'export PATH="$(brew --prefix)/opt/curl/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
echo 'export PATH="$(brew --prefix)/opt/curl/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
echo 'export PATH="$(brew --prefix)/opt/curl/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

步驟 2:從 OpenAI 獲取 API 金鑰

要獲取 API 金鑰,請先登入 openai.com,然後點選側邊欄上的 “API keys“。

從 OpenAI 獲取 API 金鑰

在 API 金鑰頁面,點選 “+ Create new secret key“,為其命名,然後點選 “Create secret key“。

建立 OpenAI 私鑰

之後,您將收到一個新的密匙。請務必複製並妥善保管,因為我們稍後會用到它。

將密匙儲存在安全且可訪問的位置。您將無法通過 OpenAI 賬戶再次檢視它。如果丟失了密匙,您必須建立一個新密匙。

將密匙儲存在安全且可訪問的位置

步驟 3 – 建立首個文字到語音版本

Now it’s time to create your first text-to-speech. Refer to the code below, and replace YOUR_API_KEY_HERE with your actual API key.

現在是建立第一個文字到語音的時候了。請參考下面的程式碼,並將此處的 YOUR_API_KEY_HERE 替換為您的實際 API 金鑰。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "hello world",
"voice": "alloy"
}' \
--output example.mp3
curl https://api.openai.com/v1/audio/speech \ -H "Authorization: Bearer YOUR_API_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "hello world", "voice": "alloy" }' \ --output example.mp3
curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "hello world",
    "voice": "alloy"
  }' \
  --output example.mp3

示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer sk-IfClJS63a7Ny3v6yKncIT3XXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "hello world",
"voice": "alloy"
}' \
--output example.mp3
curl https://api.openai.com/v1/audio/speech \ -H "Authorization: Bearer sk-IfClJS63a7Ny3v6yKncIT3XXXXXXXXXXXXXX" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "hello world", "voice": "alloy" }' \ --output example.mp3
curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer sk-IfClJS63a7Ny3v6yKncIT3XXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "hello world",
    "voice": "alloy"
  }' \
  --output example.mp3

複製整段程式碼,貼上到終端(Windows 使用者可以使用 Command Prompt 或 PowerShell),然後按 Enter。

就是這樣!此操作將建立一個名為 example.mp3 的音訊檔案,檔名為 “hello world”。

您可以進行的其他更改

現在,您已經熟悉了使用 OpenAI 音訊 API 將文字轉換為逼真的口語音訊,讓我們深入瞭解一下您可以進行的其他調整,這些調整將影響 TTS 輸出的質量和風格。

基本上,您可以修改以下內容:

1. 使用的模型

預設模型為 tts-1 ,響應速度快,但質量稍差。您可以切換到 tts-1-hd 型號,以獲得更高清晰度的音訊輸出。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"model": "tts-1-hd"
"model": "tts-1-hd"
"model": "tts-1-hd"

2. 輸出的文章

任何用雙引號括起來的文字都將轉換成語音。示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"input": "hello there, how are you doing today?"
"input": "hello there, how are you doing today?"
"input": "hello there, how are you doing today?"

3. 選擇的聲音

目前有六種不同的聲音可供選擇: alloyechofableonyxnova, 和 shimmer。示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"voice": "nova"
"voice": "nova"
"voice": "nova"

4. 輸出檔案

預設情況下,輸出為 .mp3 格式。不過,您可以更改檔名或選擇其他支援的音訊格式。目前支援的格式包括

  • Opus .opus:適用於低延遲的網際網路流媒體和通訊。
  • AAC .aac:用於數字音訊壓縮,YouTube 等平臺以及 Android 和 iOS 等裝置首選。
  • FLAC .flac:提供無損音訊壓縮,深受發燒友青睞,可用於存檔。

示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
--output myspeech.aac
--output myspeech.aac
--output myspeech.aac

常見問題

在哪裡可以找到建立的音訊檔案?

輸出檔案位於執行 cURL 指令碼的同一資料夾或路徑中。要查詢終端(Windows 使用者:PowerShell 或 Command Prompt)的當前目錄,請使用以下命令:

  • macOS 終端 – pwd
  • Windows PowerShell – pwd
  • Windows 命令提示符 – cd

能否建立和使用我的語音的自定義副本?

OpenAI 目前不支援此功能。

其他語音選項聽起來如何?

您可以使用不同的語音引數生成音訊,聽一聽其他語音的聲音,也可以訪問此頁面聆聽樣本。

它支援其他語言嗎?

是的,它支援多種語言。我已經用日語、中文(普通話)、越南語和西班牙語進行了測試,它們聽起來都很合理。

評論留言