SeamlessM4T 可以将输入语音翻译为目标语言语音。与先输出英文字幕相比,这个任务还要验收声音、采样率和翻译含义。下面以自己的短英语录音翻译到俄语为接口示例;未运行权重,目标语言支持需以所选模型版本为准。
先让输入语音清楚且可核对
录一句“Please bring two cups tomorrow.”到 input.wav,保存原文与“two、tomorrow”两项关键含义。这里用短单人语音,不混背景音乐或两人对话。输入采样率必须实际重采样,不能只把文件头写成目标值;官方处理器的音频格式要与模型一致。

用同一模型生成语音和文字检查
import torch, librosa, soundfile as sf
from transformers import AutoProcessor, SeamlessM4TModel
name = "facebook/hf-seamless-m4t-medium"
processor = AutoProcessor.from_pretrained(name)
model = SeamlessM4TModel.from_pretrained(name).eval()
wave, sr = librosa.load("input.wav", sr=16000, mono=True)
x = processor(audio=wave, sampling_rate=sr, return_tensors="pt")
with torch.no_grad():
speech = model.generate(**x, tgt_lang="rus")[0]
tokens = model.generate(**x, tgt_lang="rus", generate_speech=False)
sf.write("translated.wav", speech.cpu().numpy().squeeze(),
model.config.sampling_rate)
print(processor.decode(tokens[0].tolist()[0], skip_special_tokens=True))
语言代码 rus 来自官方用法,输出按 model.config.sampling_rate 写入;不要用输入录音的采样率想当然保存。代码沿用 medium 版本,后续 v2 或其他专用类应读各自文档。CPU 加载不代表普通电脑可以满足资源需求。
语音完成后仍需语义核对
请能理解目标语言的人核对数量、日期、否定和人名,再听音频是否截断。文字生成路径可帮助检查候选内容,但两次生成路径不是“文字一定等于音频内容”的证明,仍需听目标声音。源语中的含糊词不能通过流畅目标语掩盖。
哪些需求不由本例完成
这不是保留原说话人身份的声音克隆,也不处理视频口型、字幕时间或长对话分离。模型权重的许可与可用语言应在实际使用前检查。音频像变速播放时先核对保存采样率;翻译漏关键信息时缩短输入并复核语义,不能把可播放的 WAV 当翻译成功。下一步保存原语音、关键事实清单和目标语核验记录。
参考资料
依据 2026-10-03 读取的官方资料整理:官方文档 1。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33109.html