Android语音识别器Vuzix M300
我有一个Vuzix m300(更新1.2),我正在尝试让我的应用程序运行语音控制。我真的找不到任何特定于m300的代码示例(我想是因为它是新的吗?)。内置的语音识别器工作正常。但当我尝试通过android.SpeechRecognitor使用它时,我发现识别功能不可用 我尝试了一些在互联网上找到的代码,尽管有些代码应该可以在m100上使用。对我来说什么都不管用 这是我的密码:Android语音识别器Vuzix M300,android,speech-recognition,vuzix,Android,Speech Recognition,Vuzix,我有一个Vuzix m300(更新1.2),我正在尝试让我的应用程序运行语音控制。我真的找不到任何特定于m300的代码示例(我想是因为它是新的吗?)。内置的语音识别器工作正常。但当我尝试通过android.SpeechRecognitor使用它时,我发现识别功能不可用 我尝试了一些在互联网上找到的代码,尽管有些代码应该可以在m100上使用。对我来说什么都不管用 这是我的密码: protected void onCreate(Bundle savedInstanceState) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//grant access to internet
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
//set layout
setContentView(R.layout.activity_main);
boolean b = SpeechRecognizer.isRecognitionAvailable(getApplicationContext());
final List<ResolveInfo> services = getApplicationContext().getPackageManager().queryIntentServices(
new Intent(RecognitionService.SERVICE_INTERFACE), 0);
b = isPackageInstalled(this.getApplicationContext(), "com.google.android.googlequicksearchbox");
}
public static boolean isPackageInstalled(@NonNull final Context ctx, @NonNull final String packageName) {
try {
ctx.getApplicationContext().getPackageManager().getApplicationInfo(packageName, 0);
return true;
} catch (final PackageManager.NameNotFoundException e) {
return false;
}
其余的:
private RecognitionListener prepareRegnitionListener() {
// TODO Auto-generated method stub
return new RecognitionListener() {
@Override
public void onRmsChanged(float rmsdB) {
//Didn´t use
}
@Override
public void onResults(Bundle results) {
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
Log.d(MainActivity,"Completed speech recognition: Result: " + matches);
String match = matches.get(0);
}
@Override
public void onReadyForSpeech(Bundle params) {
Log.d(MainActivity, "ReadyforSpeech");
}
@Override
public void onPartialResults(Bundle partialResults) {
// Nothing
}
@Override
public void onEvent(int eventType, Bundle params) {
// Nothing
}
@Override
public void onError(int error) {
switch (error){
case SpeechRecognizer.ERROR_AUDIO:
Log.e(MainActivity,"Failed to recognize speech: Audio recording error.");
startListening(1000);
break;
case SpeechRecognizer.ERROR_CLIENT:
Log.e(MainActivity,"Failed to recognize speech: Insufficient permissions.");
startListening(1000);
break;
case SpeechRecognizer.ERROR_NO_MATCH:
Log.d(MainActivity,"Failed to recognize speech: No recognition results matched. Retrying...");
startListening(1000);
break;
default:
Log.e(MainActivity,"Failed to recognize speech. Unknown error" + error);
startListening(1000);
}
}
@Override
public void onEndOfSpeech() {
Log.d(MainActivity, "EndofSpeech");
}
@Override
public void onBufferReceived(byte[] buffer) {
//Didn´t use
}
@Override
public void onBeginningOfSpeech() {
Log.d(MainActivity, "beginnofSpeech");//Do something when speaking starts
}
};
}
private RecognitionListener prepareRegionListener(){
//TODO自动生成的方法存根
返回新的RecognitionListener(){
@凌驾
在RMSCHANGED上的公共无效(浮动rmsdB){
//没有使用
}
@凌驾
公共结果(捆绑结果){
ArrayList matches=results.getStringArrayList(SpeechRecognitor.results\u RECOGNITION);
Log.d(MainActivity,“完成的语音识别:结果:“+匹配”);
字符串匹配=匹配。获取(0);
}
@凌驾
ReadyForSpeech上的公共void(Bundle参数){
Log.d(主要活动,“ReadyforSpeech”);
}
@凌驾
public void onPartialResults(Bundle partialResults){
//没什么
}
@凌驾
public void onEvent(int eventType,Bundle参数){
//没什么
}
@凌驾
公共无效onError(内部错误){
开关(错误){
case SpeechRecognizer.ERROR\u音频:
Log.e(MainActivity,“无法识别语音:音频录制错误”);
听讲(1000);
打破
案例SpeechRecognizer.ERROR\u客户端:
Log.e(MainActivity,“无法识别语音:权限不足”);
听讲(1000);
打破
case SpeechRecognizer.ERROR\u NO\u匹配:
Log.d(MainActivity,“无法识别语音:没有匹配的识别结果。正在重试…”);
听讲(1000);
打破
违约:
Log.e(MainActivity,“无法识别语音。未知错误”+错误);
听讲(1000);
}
}
@凌驾
公共无效onEndOfSpeech(){
日志d(主活动,“EndofSpeech”);
}
@凌驾
已接收公共无效onBufferReceived(字节[]缓冲区){
//没有使用
}
@凌驾
开始时的公共无效fSpeech(){
Log.d(MainActivity,“beginnofSpeech”);//开始讲话时做些什么
}
};
}
调用onReadyforSpeech方法,但之后什么都没有发生,然后抛出错误。我不熟悉vuzix Android版本,但显然它没有您需要的Google软件包。我也有这个问题,我已经通过下载和安装谷歌应用程序和谷歌现在应用程序的apks解决了这个问题 您可以在这里尝试:
要以编程方式访问Vuzix内置语音识别,首先需要下载并安装M300 SDK。看 安装SDK后,Android SDK/add-ons/addon-vuzixm300sdk-vuzix-23/docs文件夹中有关于如何使用内置语音识别服务的文档。看
jar库(com.vuzix.sdk.speechrecognitionservice.jar)位于Android sdk/addons/addon-vuzixm300sdk-vuzix-23/libs文件夹中。非常感谢,工作非常顺利。但是,难道没有一种方法可以使用内置的备受赞誉的“真正的免提”服务吗?我对此没有经验。但试试谷歌的“行动”\u“声音”\u“搜索”\u“双手”\u免费,这会让你找到一些关于它的帖子。我也在试用M300,我无法让Vuzix的语音识别功能发挥作用。“内置语音识别器工作正常”是什么意思?我试着从他们的网站上运行这个示例项目,它编译得很好,但由于缺少一些类,在运行时崩溃了。
private RecognitionListener prepareRegnitionListener() {
// TODO Auto-generated method stub
return new RecognitionListener() {
@Override
public void onRmsChanged(float rmsdB) {
//Didn´t use
}
@Override
public void onResults(Bundle results) {
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
Log.d(MainActivity,"Completed speech recognition: Result: " + matches);
String match = matches.get(0);
}
@Override
public void onReadyForSpeech(Bundle params) {
Log.d(MainActivity, "ReadyforSpeech");
}
@Override
public void onPartialResults(Bundle partialResults) {
// Nothing
}
@Override
public void onEvent(int eventType, Bundle params) {
// Nothing
}
@Override
public void onError(int error) {
switch (error){
case SpeechRecognizer.ERROR_AUDIO:
Log.e(MainActivity,"Failed to recognize speech: Audio recording error.");
startListening(1000);
break;
case SpeechRecognizer.ERROR_CLIENT:
Log.e(MainActivity,"Failed to recognize speech: Insufficient permissions.");
startListening(1000);
break;
case SpeechRecognizer.ERROR_NO_MATCH:
Log.d(MainActivity,"Failed to recognize speech: No recognition results matched. Retrying...");
startListening(1000);
break;
default:
Log.e(MainActivity,"Failed to recognize speech. Unknown error" + error);
startListening(1000);
}
}
@Override
public void onEndOfSpeech() {
Log.d(MainActivity, "EndofSpeech");
}
@Override
public void onBufferReceived(byte[] buffer) {
//Didn´t use
}
@Override
public void onBeginningOfSpeech() {
Log.d(MainActivity, "beginnofSpeech");//Do something when speaking starts
}
};
}