使用streamDataSource

时间:2013-08-13 01:21:43

标签: sphinx4

我试过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. 然后,只需将名为“data”的字节数据放入ByteArrayInputStream中,如下所示

    StreamDataSource dataSource =(StreamDataSource)cm.lookup(“streamDataSource”);     ByteArrayInputStream st = new ByteArrayInputStream(data);     dataSource.setInputStream(st,“Main Stream”);

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

    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
    

    此致

1 个答案:

答案 0 :(得分:0)

  

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

不,此参数未使用且保持兼容性

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

属性名称是bigEndianData,而不是bigendianData。还请确保您使用的是最新的sphinx4,实际上建议您从颠覆中查看最新的主干。