Skip to content
Discussion options

You must be logged in to vote

这里的 batch_size=8一次最多并行处理 8 条输入语音(8 个样本),不是一条语音里同时解码 8 个 token。

当前 AutoModel.inference 会先把 input 规范化成样本列表,然后按 range(0, num_samples, batch_size) 取出 data_list[beg_idx:end_idx] 送给模型(源码);参数文档也将 batch_size 定义为“样本个数”(文档)。

例如:

wav_files = [
    "a.wav",
    "b.wav",
    "c.wav",
    # ...
]

res = model.generate(
    input=wav_files,
    batch_size=8,
)
  • 输入有 20 条时,会按最多 8 条组成多个 batch。
  • 输入只有 "a.wav" 一条时,即使写 batch_size=8,实际 batch 里仍只有 1 条;它不会把这条语音切成 8 份,也不会改变 Paraformer 内部 token 的预测方式。
  • 不同音频长度差异很大时,显存占用主要由该批次里的音频时长决定,不应只按样本数估算。

如果配置了 vad_model 处理长音频,另有一组不同语义的参数:

  • batch_size_s:VAD 切段后,动态 batch 的总音频时长预算,单位秒。
  • batch_size_threshold_s:单个切后片段超过阈值时强制单独成批。
  • max_single_segment_time:真正控制 VAD 最长切段,单位毫秒。

这三个参数…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by LauraGPT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants