【问题标题】:PCM input to pocketsphinxPCM输入到pocketsphinx
【发布时间】:2016-05-10 23:37:36
【问题描述】:

是否可以直接将 pcm 数据输入到 pocketsphinx 而不是首先将其转换为 wav 文件?如果是,请帮助我编写 c 中的代码。

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

【问题讨论】:

    标签: pocketsphinx


    【解决方案1】:

    代码在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,它接受一个数据缓冲区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多