【问题标题】:expected audio sample rate doesn't match actual?预期的音频采样率与实际不匹配?
【发布时间】:2017-10-20 20:00:38
【问题描述】:

我正在尝试使用袖珍狮身人面像来转录音频文件。

pocketsphinx_continuous -infile 116-288045-0005.flac.wav

但我得到了错误:

ERROR: "continuous.c", line 136: Input audio file has sample rate [44100],
       but decoder expects [16000]
FATAL: "continuous.c", line 165: Failed to process file '116-288045-0005.flac.wav'
       due to format mismatch.

这是我需要转录的音频文件之一:Download from GitHub

最终我将批量转录超过 5 小时的此类音频文件,目前它们都抛出相同的错误。

以下是我正在尝试转录的同一文件的一些统计信息:

$ soxi 116-288045-0000.flac.wav

Input File     : '116-288045-0000.flac.wav'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:10.65 = 469665 samples = 798.75 CDDA sectors
File Size      : 939k
Bit Rate       : 706k
Sample Encoding: 16-bit Signed Integer PCM

此文件的某些配置可能存在问题,我已经进行了一些预处理以将其与 mp3 合并,从 flac 转换为 wav 等。

现在让转录工作最简单的方法是什么?

是否可以不将文件重新采样回 16kHz。最初 flac 文件的采样率为 16kHz,但我不得不将它们与 44.1kHz mp3 文件合并。因此,现在它们中有一些高频信息,如果重新采样到 16k,这些信息可能会丢失。

【问题讨论】:

    标签: bash shell audio speech-recognition pocketsphinx


    【解决方案1】:

    将音频重新采样为 16000 样本,然后重试。

    您可以像这样重新采样
    sox file.wav -r 16000 file-16000.wav

    【讨论】:

    • 但这会消除信息。发生的事情是 .flac 文件最初是 16000Hz,但我不得不将它们与 44.1kHz mp3 文件合并。因此,如果重新采样到 16k,可能会丢失一些高频信息
    • 如何在不重新采样到 16kHz 的情况下做到这一点?
    • 另一个选项可能是修改配置文件并更改解码器的默认采样率。 config中的选项名称为-samprate
    • 对不起,我不太明白你的意思。
    • Pocketsphinx 无论如何都不会使用高于 16khz 的信息,因此您可以安全地重新采样。这是最简单的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2011-01-06
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多