Speech recognition 将Sphinx4应用于Android手机中记录的语音数据

Speech recognition 将Sphinx4应用于Android手机中记录的语音数据,speech-recognition,sphinx4,Speech Recognition,Sphinx4,这听起来很奇怪。但是,我想分析Sphinx4在我的Android手机中记录的字节数据。而且,没有好结果。我知道这是因为我的配置问题。 如果你有关于狮身人面像4的经验,我想听听你的想法&同样的经验 我想描述一下我的环境: 手机(Android、Nexsus One) 抽样率=8000 audioFormat=audioFormat.ENCODING\u PCM\u 16位 channelConfig=AudioFormat.CHANNEL\u在单声道中 狮身人面像X4 采样率=16000 b

这听起来很奇怪。但是,我想分析Sphinx4在我的Android手机中记录的字节数据。而且,没有好结果。我知道这是因为我的配置问题。 如果你有关于狮身人面像4的经验,我想听听你的想法&同样的经验

我想描述一下我的环境:

  • 手机(Android、Nexsus One)

    • 抽样率=8000
    • audioFormat=audioFormat.ENCODING\u PCM\u 16位
    • channelConfig=AudioFormat.CHANNEL\u在单声道中
  • 狮身人面像X4

    • 采样率=16000
    • bigEndianData=false
    • 使用streamDataSource
  • 所以,我记录语音数据(字节[]),然后用Sphinx4进行分析。 下面是我的手机录制的语音示例(一二三)

    -29:-1:84:0:-77:0:-88:0:-88:0:-99:0:-105:0:-82:0:-88:0:-99:0:101:0:89:0:118:0:95:0:44:0:22:0:28:0:39:0:56:0:50:0:28:0:22:0:-6:-1:-17:-1:-6:-1:-34:-1:-34:-1:-85:-1:-85:-1:-79:-1:115:-1:126:-1:-113:-1:-85:-1:-102:-1:104:-1:115:-1:121:-1:-102:-1:-113:-1:-96:-1:-57:-1:-96:-1:109:-1:104:-1:-79:-1:16:0:101:0:-105:0:-122:0:-122:0:-99:0:67:0:101:0:78:0:-6:-1:11:0:-6:-1:39:0:50:0:56:0:22:0:0:0:101:0:123:0:33:0:118:0:56:0:-40:-1:84:0:-85:-1:87:-1:76:-1:-54:-2:31:-1:31:-1:70:-1:0:0:-17:-1:-68:-1:56:0:50:0:-102:-1:-12:-1:-113:-1:-124:-1:-6:-1:11:0:106:0:101:0:50:0:-124:-1:104:-1:-102:-1:126:-1:81:-1:76:-1:-34:-1:-6:-1:44:0:-105:0:-110:0:78:0:67:0:-68:-1:-45:-1:33:0:-74:-1:-57:-1:-57:-1:33:0:28:0:39:0:-45:-1:5:0:25:1:123:0:-62:-1:-110:0:118:0:73:0:-93:0:73:0:16:0:-40:-1:-119:-1:-68:-1:101:0:61:0:-12:-1:-88:0:70:1:-48:0:-65:0:25:1:56:0:-34:-1:0:0:28:0:106:0:-127:0:-77:0:123:0:-68:-1:-29:-1:61:0:-12:-1:5:0:22:0:-79:-1:-96:-1:-102:-1:31:-1:70:-1:-96:-1:-79:-1:-107:-1:-96:-1:-51:-1:-107:-1:121:-1:-96:-1:-96:-1:104:-1:109:-1:81:-1:-79:-1:33:0:28:0:22:0:39:0:44:0:73:0:67:0:118:0:95:0:-17:-1:-17:-1:-113:-1:-57:-1:-107:-1:31:-1:98:-1:-124:-1:-29:-1:-57:-1:-79:-1:-45:-1:-62:-1:-12:-1:-85:-1:-34:-1:33:0:-51:-1:-102:-1:109:-1:-85:-1:109:-1:25:-1:115:-1:92:-1:109:-1:87:-1:25:-1:121:-1:-85:-1:92:-1:-85:-1:0:0:-6:-1:-29:-1:-119:-1:-62:-1:22:0:95:0:84:0:33:0:-122:0:-93:0:-99:0:-122:0:11:0:-40:-1:-51:-1:-79:-1:-12:-1:-23:-1:-45:-1:-34:-1:-12:-1:-34:-1:-23:-1:22:0:16:0:56:0:67:0:-34:-1:-102:-1:-113:-1:-107:-1:121:-1:-102:-1:11:0:39:0:28:0:11:0:89:0:95:0:123:0:-105:0:28:0:16:0:-45:-1:-85:-1:-6:-1:44:0
    

    每个字节数据之间用“:”分隔。

    如果在android上记录8000,sphinx4采样率也必须为8000 Hz。您还需要使用sphinx4 distribution的8khz型号或任何其他8khz型号,并且需要根据文档设置滤波器组参数(高频等)

    有关正确配置的8khz输入的示例,请参见
    sphinx4/test/performance/wsj_8khz/config.xml


    或者,通过设置合适的录音参数,在Android上以16000 Hz的频率录音。这将提高解码的准确性。

    我明白了。我会试试你的建议。每次都谢谢你。对不起,我还有一个问题。实际上,我下载了sphinx4-1.0beta6-src,在那里我可以得到“test/performance/wsj_8khz/config.xml”。但是,他们正在使用一些不包含该软件包的模型。我在哪里可以得到它???我找不到。例如,在“字典”配置中,使用/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz/dict/fillerdict。但是,在那个包中,我可以找到“models/acoustic/wsj_8kHz/”,但没有“fillerdict”的文件或目录。配置文件在源代码中,看起来更好。Fillerdict现在被称为noisedict。字典配置中的路径是jar中的路径,而不是文件系统中的路径。如果需要,可以使用文件系统中的路径。