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 指标评估翻译的准确性。
- 优化翻译:调整提示词,改善翻译质量。
通过这些方法,您可以轻松将播客、培训视频甚至电影翻译成多种语言,适用于娱乐、教育、商业和全球交流等多个领域,让您的内容触达更广泛的受众。