PCM输入到pocketsphinx

时间:2016-05-09 05:43:31

标签: pocketsphinx

是否可以直接将pcm数据提供给pocketsphinx而不是先将其转换为wav文件?如果是,那么请帮我解决c。

中的代码

PS:pcm输入来自模拟设备,就像与arduino接口的麦克风,然后将采样的pcm数据转发到linux机器。

1 个答案:

答案 0 :(得分:0)

代码在tutorial中以及在更高级版本的源代码中的continuous.c中提供:

ps_start_utt(ps);
utt_started = FALSE
while ((k = fread(adbuf, sizeof(int16), 2048, rawfd)) > 0) {
    ps_process_raw(ps, adbuf, k, FALSE, FALSE);
    in_speech = ps_get_in_speech(ps);
    if (in_speech && !utt_started) {
        utt_started = TRUE;
    }
    if (!in_speech && utt_started) {
        ps_end_utt(ps);
        hyp = ps_get_hyp(ps, NULL);    
        ps_start_utt(ps);
        utt_started = FALSE;
    }
}
ps_end_utt(ps);

主要调用是ps_process_raw,它接受​​数据缓冲区。