VoxCPM2流式语音：按到达顺序拼接音频块，分开首块延迟与整段耗时

素材身份：作者原创输入/可编辑参考。目标工具未在本轮执行。
先打开 index.html；input.csv 是原始字段，reference.csv 是验收基准，negative.csv 是故意构造的坏样例。
actual-results.csv 保留未测状态，实际执行后再填写。

前置条件：
核对VoxCPM2当前Python streaming入口及设备条件。
练习PCM可离线验证拼接；真实模型生成与速度在本轮保持未测。
练习包提供口述脚本、规则与验收数据，不附目标工具生成录音。按录音说明自行录制有权使用的输入，并在运行后保存实际音频。

操作步骤：
1. 建立可听出顺序的离线材料
先打开作者的四段不同音高PCM样本和块清单，按编号回听。它们只检验拼接器，不能当作VoxCPM生成结果或速度基准。

2. 记录单次目标请求
把目标text、模型版本和设备写到一份请求记录，使用generate_streaming入口。不要把四个独立批次文件当作同一个迭代器的流式输出。

3. 在迭代入口开始计时
调用前记录单调时钟起点，每拿到一块就按到达序号保存样本数和时间。首块出现时单独落账，不等整个列表收齐再补写时间。

4. 保持原顺序连接PCM
官方示例使用收集块后np.concatenate，按迭代顺序连接。若落盘为分块文件，保持数值序号与清单，不按未经补零的文件名字典序重排。

5. 核对总长度与块边界
计算总样本数应等于块样本数之和，再除以实际采样率求时长。回听四个离线音高段，检查重复或漏块；真实语音另听词尾和接点。

6. 分开报告两类延迟
分别列首块延迟、总耗时、音频时长和设备信息。没有真实执行模型时只交计时代码和空白结果表，不引用官方4090数字当本机成绩。

7. 交付清单与最终音频
保存到达日志、各块校验值、最终WAV与参数。重建时按清单核对每块只出现一次，再从头到尾试听。

验收：
拼接后样本数等于所有块样本数之和，块序号按实际到达顺序。
首块到达耗时与全部生成耗时分别记录，不用RTF替代首包延迟。
最终WAV采样率来自模型实际sample_rate，未造实时性能数据。

官方资料：
https://github.com/OpenBMB/VoxCPM

图片身份：assets/ 为内置image_gen生成的原创练习输入缩略版，原始文件保留在网站图片来源地址。可编辑SVG为作者原生排版。
