在我尝试使用PocketSphinx for Android之前,我使用了Google的语音识别API.我不需要设置搜索名称或字典文件.它只是承认了所说的每一个字.
现在,在PocketSphinx中,我需要这样做.但是我只能找到如何为一个单词设置识别,或者设置字典(演示项目中可用的字典只有很少的单词),识别器认为这些是唯一存在的单词,这意味着如果有人说类似的话,识别器认为它是字典中列出的单词.
我只是想问,我怎么能设置一些搜索名称,或者如何设置它来识别所有可用的单词(甚至是大量的单词)?也许某人有一个包含大量单词的字典文件?
我已经为研究做了很多工作并尝试了离线口袋狮身人面像,但它正在采取周围的声音,并以不同的方式对我的应用做出反应.以上kitkat 4.4是否有谷歌离线应用程序..我正在尝试从2周.谢谢你的宝贵答案.
详细信息:当活动开始时,文本必须在完成后阅读内容(文本到语音),阅读语音识别必须采取语音并按照命令ex :(下一个,上一个,前进,选项,1,2,3, 4等).根据命令,它必须在onresult方法中识别并作出反应.
错误:我收到一些声音后收到错误
06-18 19:54:00.159: V/onBeginningOfSpeech(3360): onBeginningOfSpeech
06-18 19:54:01.024: V/onPartialResult(3360): option
06-18 19:54:01.109: I/cmusphinx(3360): INFO: fsg_search.c(843): 105 frames, 5333 HMMs (50/fr), 7748 senones (73/fr), 371 history entries (3/fr)
06-18 19:54:01.110: I/SpeechRecognizer(3360): Stop recognition
06-18 19:54:01.110: E/cmusphinx(3360): ERROR: "fsg_search.c", line 913: Final result does not match the grammar in frame 105
06-18 19:54:01.111: V/onPartialResult-->(3360): option
06-18 19:54:01.111: V/onResult(3360): onResult
Run Code Online (Sandbox Code Playgroud)
但如果我关闭互联网,它就不能脱机工作了.
在pocketsphinx中,它没有对正确的词作出反应.如果我说"下一个"它接近另一个的声音内容附加"密钥",它给了我很多问题.是否有任何离线使用的解决方案或库.任何离线谷歌离线语音支持.
以下是我的代码尝试
package com.example.sample1;
import static edu.cmu.pocketsphinx.SpeechRecognizerSetup.defaultSetup;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import …Run Code Online (Sandbox Code Playgroud) android speech-recognition speech-to-text voice-recognition pocketsphinx-android
我试图通过这个链接实现新版本的PocketSphinx 我已经创建了一个新的绑定项目,并且有编译错误.
错误CS0738'Jsgf'未实现接口成员'IIterable.Iterator()'.'Jsgf.Iterator()'无法实现'IIterable.Iterator()',因为它没有匹配的返回类型'IIterator'.PocketSphinxDroid\PocketSphinxDroid\obj\Debug\generated\src\Edu.Cmu.Pocketsphinx.Jsgf.cs 9有效
我已经尝试添加到metatdata.xml文件
<attr path="/api/package[@name='Edu.Cmu.Pocketsphinx']/class[@name='Jsgf']/method[@name='Iterator']" name="managedType">Java.Util.IIterator</attr>
Run Code Online (Sandbox Code Playgroud)
要么
<attr path="/api/package[@name='Edu.Cmu.Pocketsphinx']/class[@name='Jsgf']/method[@name='Iterator']" name="managedType">Java.Lang.IIterator</attr>
Run Code Online (Sandbox Code Playgroud)
但仍然得到错误
任何人都可以解释我如何使用pocketsphinx将我的演讲转换成文本吗?我试试这个:
import com.example.speechtutor.SpeechRecognizerRecorder;
import com.example.speechtutor.SpeechRecognizerRecorderSetup;
import edu.cmu.pocketsphinx.Hypothesis;
import edu.cmu.pocketsphinx.RecognitionListener;
import static edu.cmu.pocketsphinx.Assets.syncAssets;
public class SpeakActivity extends Activity implements RecognitionListener {
SpeechRecognizerRecorder recognizer;
private File appDir;
String filePath;
private static final String KWS_SEARCH_NAME = "wakeup";
private static final String FORECAST_SEARCH = "forecast";
private static final String DIGITS_SEARCH = "digits";
private static final String MENU_SEARCH = "menu";
private static final String KEYPHRASE = "hello";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_speak);
try {
Log.d("Tag","before trying to sync assets");
appDir = syncAssets(getApplicationContext()); …Run Code Online (Sandbox Code Playgroud) 我正在努力提高在嘈杂环境中口袋狮身人面像的识别准确性。但是,用户可能会在可变环境中使用该应用程序。因此,噪音训练不是我想做的事情。
我的问题是,在将语音信号输入到口袋狮身人面像之前,降噪是否一定会降低识别精度?
如果是,降噪后需要保留哪些语音特征?目前我观察到,如果我使用降噪,WER 从~40%(自由形式语言)上升到~60%。
补充一点,降噪后语音听起来确实更好。
Pocketsphinx argfile:
-lm lm_giga_64k_vp_3gram.DMP
-dict lm_giga_64k_vp.sphinx.dic
-hmm voxforge_en_sphinx.cd_cont_5000
Run Code Online (Sandbox Code Playgroud)
这里的想法是证明启用降噪后语音识别准确性的提高,并且直观地说,除非降噪算法完全弄乱了信号的频谱内容,否则理想情况下应该会发生这种情况。
任何帮助,将不胜感激。
speech-recognition noise noise-reduction pocketsphinx-android