【发布时间】:2016-05-10 23:37:36
【问题描述】:
是否可以直接将 pcm 数据输入到 pocketsphinx 而不是首先将其转换为 wav 文件?如果是,请帮助我编写 c 中的代码。
PS:pcm 输入来自模拟设备,例如与 arduino 接口的麦克风,然后将采样的 pcm 数据转发到 linux 机器。
【问题讨论】:
标签: pocketsphinx
是否可以直接将 pcm 数据输入到 pocketsphinx 而不是首先将其转换为 wav 文件?如果是,请帮助我编写 c 中的代码。
PS:pcm 输入来自模拟设备,例如与 arduino 接口的麦克风,然后将采样的 pcm 数据转发到 linux 机器。
【问题讨论】:
标签: pocketsphinx
代码在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,它接受一个数据缓冲区。
【讨论】: