PocketSphinx ps_process_raw пример размера буфера - PullRequest
0 голосов
/ 17 ноября 2018

В учебнике pocketsphinx функция ps_process_raw была вызвана с буфером 512 int16s:

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

Однако в их собственном исходном коде , вызванном командойЛинейный интерфейс, они использовали 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.Если я правильно понимаю, данный входной звук предпочтителен в 16 кГц, 512 сэмплов соответствуют примерно 30 мс звука, что соответствует тому, что, по-видимому, предлагает большинство руководств по распознаванию речи.

Интересно, кто-нибудь знает, какРазмер буфера выборки влияет на производительность (точность и скорость), а также на то, почему она не согласована с разными «официальными» источниками.

Я использую C ++ API последней версии sphinx.

...