Voice Translation into Different Languages | OpenAI Cookbook
如何使用 GPT-4o 將播客翻譯并配音成您的母語
您是否曾想過將播客翻譯成您的母語?翻譯和配音音頻內容可以讓全球更多的觀眾獲取信息。而現在,借助 GPT-4o 的音頻輸入(audio-in)和音頻輸出(audio-out)功能,這一過程變得比以往任何時候都更簡單。
本指南將指導您使用 OpenAI 的 GPT-4o 音頻 API,將英語音頻文件翻譯并配音成印地語。
GPT-4o 簡化了音頻內容的配音流程
過去,想要將音頻內容翻譯并配音,需要先將音頻轉錄成文本,再翻譯成目標語言的文本,最后再轉換回音頻。而如今,借助 GPT-4o 的**語音到語音(voice-to-voice)**功能,只需一步即可完成整個過程,無需額外的文本處理步驟。
關于本指南中“語言”和“書寫系統”的定義
在翻譯和配音任務中,了解“語言”和“書寫系統”的區別至關重要,盡管這兩個術語有時可以互換使用。
- 語言(Language) 指的是口頭或書面溝通的系統。例如,印地語(Hindi)和馬拉地語(Marathi)是兩種不同的語言,但它們都使用**天城文(Devanagari script)書寫。同樣,英語(English)和法語(French)是不同的語言,但它們都使用拉丁字母(Latin script)**書寫。
- 書寫系統(Script) 指的是用于書寫語言的字符或符號。例如,塞爾維亞語(Serbian)傳統上使用**西里爾字母(Cyrillic script)書寫,但也可以使用拉丁字母(Latin script)**書寫。
GPT-4o 的音頻輸入和輸出功能使得語言配音變得更加便捷,僅需一次 API 調用,即可完成從一種語言到另一種語言的音頻轉換。
主要步驟
- 轉錄(可選):使用 GPT-4o 將源音頻文件轉錄成源語言的文本。如果已有轉錄文本,則可跳過此步驟。
- 配音:直接將源語言音頻轉換為目標語言音頻。
- 評估翻譯質量:使用 BLEU 或 ROUGE 等評估指標衡量翻譯的準確性。
- 優化翻譯效果:根據評估結果調整模型的提示參數,以提高翻譯和配音質量。
先決條件
在開始之前,請確保您已經:
- 獲取了 OpenAI API 密鑰,并將其配置為環境變量。
- 安裝了必要的軟件包(將在代碼示例中介紹)。
步驟 1:使用 GPT-4o 將音頻轉錄為文本
首先,我們創建一個函數 process_audio_with_gpt_4o
,它可以將音頻文件發送到 OpenAI 的 GPT-4o API 進行處理,并返回文本轉錄結果。
import requests
import os
import json api_key = os.getenv("OPENAI_API_KEY") def process_audio_with_gpt_4o(base64_encoded_audio, output_modalities, system_prompt):url = "https://api.openai.com/v1/chat/completions" headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } data = {"model": "gpt-4o-audio-preview", "modalities": output_modalities, "audio": {"voice": "alloy", "format": "wav" }, "messages": [{"role": "system", "content": system_prompt}, {"role": "user", "content": [{"type": "input_audio", "input_audio": {"data": base64_encoded_audio, "format": "wav"}}]} ] } request_response = requests.post(url, headers=headers, data=json.dumps(data)) if request_response.status_code == 200:return request_response.json() else:print(f"Error {request_response.status_code}: {request_response.text}") return
步驟 2:將英語音頻直接配音成印地語
使用 GPT-4o,我們可以直接將英語音頻轉換為印地語音頻,同時獲得印地語文本。
glossary_of_terms_to_keep_in_original_language = "Turbo, OpenAI, token, GPT, Dall-e, Python"modalities = ["text", "audio"]
prompt = f"用戶將提供一個英語音頻文件。請將完整音頻逐字配音為印地語,同時保留部分無法直接翻譯的詞匯,如 {glossary_of_terms_to_keep_in_original_language}。"response_json = process_audio_with_gpt_4o(english_audio_base64, modalities, prompt)message = response_json['choices'][0]['message']hindi_transcript = message['audio']['transcript']
print(hindi_transcript)hindi_audio_data_base64 = message['audio']['data']
步驟 3:評估翻譯質量(BLEU 或 ROUGE)
為了評估翻譯質量,我們可以使用 BLEU 和 ROUGE 評分方法。
import sacrebleu
from rouge_score import rouge_scorer reference_text = english_transcript
candidate_text = re_translated_english_text # 計算 BLEU 評分
bleu = sacrebleu.corpus_bleu([candidate_text], [[reference_text]])
print(f"BLEU Score: {bleu.score}") # 計算 ROUGE 評分
scorer = rouge_scorer.RougeScorer(['rouge1', 'rougeL'], use_stemmer=True)
scores = scorer.score(reference_text, candidate_text)
print(f"ROUGE-1 Score: {scores['rouge1'].fmeasure}")
print(f"ROUGE-L Score: {scores['rougeL'].fmeasure}")
步驟 4:優化翻譯質量
如果翻譯質量不理想,可以通過以下方式優化:
- 優化音頻轉錄:如果源音頻中的某些詞匯容易被誤解,可以在系統提示(system prompt)中提供詞匯表,以確保準確轉錄。
- 優化語言流暢性:如果配音語句不夠自然,可以在轉錄后使用 GPT 進行文本優化,再轉換為音頻。
- 調整特定術語:某些專有名詞或品牌名稱可能需要保留原文,可在提示詞中明確要求。
總結
本指南介紹了如何使用 GPT-4o 進行音頻翻譯和配音,使內容更加便于全球受眾獲取。整個流程分為以下四個步驟:
- 轉錄:將源語言音頻轉換為文本(可選)。
- 配音:直接將音頻從源語言轉換為目標語言。
- 評估質量:使用 BLEU 或 ROUGE 指標評估翻譯的準確性。
- 優化翻譯:調整提示詞,改善翻譯質量。
通過這些方法,您可以輕松將播客、培訓視頻甚至電影翻譯成多種語言,適用于娛樂、教育、商業和全球交流等多個領域,讓您的內容觸達更廣泛的受眾。