用 FunASR 转写超长音频:1 小时录音也能一次搞定

转写一段 1 小时的播客、讲座或会议录音,用 Whisper 会很痛苦:它一次只处理 30 秒,你得自己把音频切片、逐片识别、再把结果拼起来,还要处理切片边界把词切断的问题。

FunASR 不用这么麻烦。它内置 VAD(语音端点检测),一次 generate() 调用就能吃下任意时长的音频——自动切句、批量解码、拼回完整文本,你一行切片代码都不用写。

安装

pip install -U funasr modelscope

完整代码(可直接运行)

from funasr import AutoModel

model = AutoModel(
    model="iic/SenseVoiceSmall",   # or "paraformer-zh"
    vad_model="fsmn-vad",          # built-in voice activity detection
    vad_kwargs={"max_single_segment_time": 30000},
)

# One call on a full 1-hour file - VAD segments and batches it internally.
res = model.generate(
    input="podcast_1hour.wav",
    batch_size_s=300,   # dynamic batching of VAD segments (throughput)
)
print(res[0]["text"])

实测:13 分钟音频 4.3 秒转完

long clip: 791s = 13.2 min
transcribed 791s in 4.3s -> RTFx=186
output chars: 2104   # full transcript, head to tail

我们把一段 13.2 分钟(791 秒)的录音丢进单次 generate(),4.3 秒就转写完毕(186x 实时),输出完整覆盖从开头到结尾。换成 1 小时的文件,做法完全一样——不用改一行代码。

为什么能处理任意时长

进阶

典型场景

FunASR 是通义实验室开源的工业级语音识别工具包,长音频、流式、多语种全覆盖。

在 GitHub 上 Star FunASR ★

相关文章