You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整SeamlessM4Tv2Model生成音频的语速?

调整SeamlessM4T v2生成音频语速至指定时长的解决思路

核心说明

SeamlessM4T v2的generate()方法中,speech_temperature和speech_do_sample仅控制生成音频的随机性,不影响时长。要将3秒音频调整为5秒,可从后期音频变速或模型生成阶段的长度控制两个方向入手,其中后期处理是更直接可靠的方案。


方法一:后期音频变速处理(推荐)

利用音频处理库对生成后的音频进行变速,保持音调不变。

用librosa实现的代码示例:

import librosa
import soundfile as sf

# 原生成逻辑不变
text_inputs = processor(text="I have a daughter 2 years old, I wanted her name to be Hương Ly", src_lang="eng", return_tensors="pt").to(device)
audio_array = model.generate(**text_inputs, tgt_lang=language)[0].cpu().numpy().squeeze()

# 计算变速比例:原时长3秒→目标5秒,速度变为原速的3/5=0.6倍
original_duration = len(audio_array) / 16000  # 基于采样率16000计算原时长
speed_ratio = original_duration / 5

# 变速处理,保持音调不变
audio_slowed = librosa.effects.time_stretch(audio_array, rate=speed_ratio)

# 保存处理后的音频
file_path = 'audio_from_text_slowed.wav'
sf.write(file_path, audio_slowed, 16000)

用pydub实现的代码示例:

from pydub import AudioSegment
import soundfile as sf

# 先保存原生成音频
text_inputs = processor(text="I have a daughter 2 years old, I wanted her name to be Hương Ly", src_lang="eng", return_tensors="pt").to(device)
audio_array = model.generate(**text_inputs, tgt_lang=language)[0].cpu().numpy().squeeze()
original_file = 'audio_from_text.wav'
sf.write(original_file, audio_array, 16000)

# 加载音频并调整速度至原速的60%
audio = AudioSegment.from_wav(original_file)
audio_slowed = audio.speedup(playback_speed=0.6, chunk_size=150, crossfade=25)
audio_slowed.export('audio_from_text_slowed.wav', format='wav')

方法二:模型生成阶段尝试控制长度(可选)

SeamlessM4T v2的generate()方法支持speech_max_length参数,可尝试设置该参数限制生成语音的最大token数,间接调整时长。但该方法依赖模型对文本的映射,效果不如后期处理稳定:

# 在generate中添加speech_max_length参数
audio_array = model.generate(
    **text_inputs, 
    tgt_lang=language,
    speech_max_length=int(16000 * 5)  # 按采样率16000,5秒对应80000个采样点,需根据模型token映射关系调整
)[0].cpu().numpy().squeeze()

注意:该参数取值需结合模型语音token与采样点的对应关系调整,可能需要多次测试才能匹配目标时长。


内容的提问来源于stack exchange,提问作者lam vu Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:16:21