声音数字化与 ASR 全流程

本节目标

理解声音如何变成数字样本,并能定义 ASR 的输入、输出和来源字段。

从空气振动到数字波形

麦克风把空气压力变化变成电信号,模数转换器按固定时间间隔采样。采样率(sample rate) 是每秒采样次数,例如 16 kHz 表示每秒 16,000 个样本;位深(bit depth) 决定每个 PCM 样本可表示的幅度精度;声道(channel) 表示单声道或多声道。

采样定理的最小直觉是:若要表示最高频率 ,采样率需高于 。这不意味着采样率越高识别一定越好:模型可能要求固定格式,错误重采样、削波和噪声反而更重要。

短时处理会把波形切成重叠的帧(frame)。语音在几十毫秒范围内近似稳定,可从每帧提取频谱特征;现代端到端模型也可能直接从波形或内部特征学习表示。

不要把下列概念混成“音频格式”:

层例子需要记录的事实常见误判
容器WAV、MP4、WebM容器实际探测结果与时长扩展名等于编码
编码/样本表示PCM、AAC、Opuscodec、样本位宽/布局(适用时)WAV 一定是未压缩 PCM
采样布局48 kHz 双声道、16 kHz 单声道sample_rate_hz、channels、混音规则“更高采样率”必然更准
模型分析输入某模型规定的单声道波形或特征重采样/下混 transform_revision、模型要求原始文件参数就是模型实际输入

同一资产至少保留 asset_id、source_revision、原始格式、分析格式、timestamp_reference 和转换版本。若时间戳以资产开头为零点,推荐将片段写成半开区间 [start_seconds, end_seconds);播放器的墙钟、上传时间和音频样本坐标不能混用。重采样、下混、裁剪、静音删除都必须产生新的可追溯转换记录,而不是覆盖来源。

ASR 流水线

flowchart LR
    A[采集资产] --> B[受限解码与探测]
    B --> C[重采样/声道处理]
    C --> D[VAD 与切段]
    D --> E[模型解码]
    E --> F[时间戳/匿名说话人]
    F --> G[原始与规范化文本]
    G --> H[评测/人工复核]
    H --> I[受策略约束的下游]

最小输入元数据:asset_id、source_revision、格式、采样率、声道、时长、语言提示、采集/访问许可和时间基准。最小输出元数据:segment_id、revision、片段起止时间、原始文本、规范化文本、partial/provisional_final/committed 语义、模型/配置版本和错误信息。若模型没有给出某字段,应显式为 unknown 或不提供,不能用臆测填满合同。

常见错误

  • 把文件扩展名当真实编码格式;应实际解码并检查参数。
  • 双声道直接相加导致相位抵消;需明确选声道或安全混音。
  • 音频幅度超过表示范围形成削波,丢失无法靠模型恢复。
  • 无上限读取超长文件导致内存或超时问题。
  • 让不可信上传文件直接进入复杂解码器;应限制大小、时长、codec/容器、嵌套媒体和资源消耗,并隔离失败解析。

练习与自测

  1. 16 kHz、16-bit、单声道原始 PCM 每秒约多少字节? 字节,不含容器开销。
  2. 44.1 kHz 音频是否一定比 16 kHz 更适合某 ASR?不一定,先看模型输入契约并实测。
  3. 为一段两人会议录音列出可追溯输出字段。

下一步与参考

下一步学习 声学、语言与端到端直觉。文件读取概念可参考 Python wave 文档(获取日期:2026-07-22);它面向 WAVE,且并不构成通用音频解码或安全审计器。实际支持的容器、codec 和采样参数必须以目标模型/服务的当前合同为准。