0

我试过 LatticeDemo.java。而且,我可以得到如示例结果所示的结果。此示例使用“AudioFileDataSource”作为语音数据 (10001-90210-01803.wav)。我正在尝试使用 StreamDataSource 以不同的方式识别此语音数据。

但是,我得到了不同的结果。我想听听任何想法。

以下是我采取的步骤:

  1. 通过以下代码从 10001-90210-01803.wav 获取字节数据

    File f = new File(file);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    BufferedInputStream in;
            try {
                in = new BufferedInputStream(new FileInputStream(f));
    
                return ByteStreams.toByteArray(in);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
  2. 然后,只需将这个称为“数据”的字节数据放入 ByteArrayInputStream 中,如下所示

    StreamDataSource dataSource = (StreamDataSource) cm.lookup("streamDataSource"); ByteArrayInputStream st = new ByteArrayInputStream(data); dataSource.setInputStream(st, "主流");

实际上,当我们使用“setInputStream”函数时,第二个参数(即“Main Stream”)有什么特殊含义吗?我不明白为什么需要这个论点。

streamDataSource 的配置如下:

<component name="streamDataSource" type="edu.cmu.sphinx.frontend.util.StreamDataSource"> <property name="sampleRate" value="16000" /> <property name="bigendianData" value="false" / > </组件>

输出是

Loading...
17:48:01.941 WARNING dictionary        Missing word: <unk>
17:48:02.543 WARNING dictionary        Missing word: <unk>
 <s> i. </s>
 <s> i. <sil> </s>
 <s> i. a. </s>
 <s> i. a </s>
 <s> i </s>
 <s> i a </s>
 <s> i <sil> </s>
 <s> i a. </s>
 <s> high a </s>
 <s> i </s>
 <s> a i </s>
 <s> a i. </s>
 <s> i i </s>
 <s> i i. </s>
 <s> i. </s>
 <s> i. i. </s>
 <s> high </s>
 <s> higher </s>
 <s> tight </s>
 <s> right </s>
 <s> wright </s>
I heard: i

问候

4

1 回答 1

0

实际上,当我们使用“setInputStream”函数时,第二个参数(即“Main Stream”)有什么特殊含义吗?我不明白为什么需要这个论点。

不,此参数未使用并保留以保持兼容性

 <property name="bigendianData" value="false" /> 

属性名称是 bigEndianData,而不是 bigendianData。还请确保您使用的是最新的 sphinx4,实际上建议从 subversion 签出最新的主干。

于 2013-08-13T05:38:20.567 回答