PocketSphinx ps_process_raw样本缓冲区大小效果

时间:2018-11-16 21:47:53

标签: c++ cmusphinx pocketsphinx

在Pocketsphinx tutorial中,使用512个int16的缓冲区调用ps_process_raw函数:

int16 buf[512];
while (!feof(fh)) {
    size_t nsamp;
    nsamp = fread(buf, 2, 512, fh);
    ps_process_raw(ps, buf, nsamp, FALSE, FALSE);
}

但是在命令行界面调用的own source code中,他们使用了256:

total = 0;
while (!feof(rawfh)) {
    int16 data[256];
    size_t nread;
    nread = fread(data, sizeof(*data), sizeof(data)/sizeof(*data), rawfh); 
    ps_process_raw(ps, data, nread, FALSE, FALSE);
    total += nread;
}

在其他地方,我也看到了2048。如果我理解正确,那么在16khz中首选输入音频,则512个样本对应于大约30毫秒的声音,这与大多数语音识别指南所建议的一致。

我想知道是否有人知道样本缓冲区大小如何影响性能(准确性和速度),以及为什么在不同的“官方”来源中样本缓冲区大小不一致?

我正在使用C ++ API开发最新的狮身人面像版本。

0 个答案:

没有答案