语音识别作为后台服务

编程入门 行业动态 更新时间:2024-10-27 00:32:39
本文介绍了语音识别作为后台服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

是否有可能实现的活动作为服务?我的活动是一个语音识别的活动。我想在的应用程序不断检查声音,当用户说出一个命令时,它会识别它,然后执行操作的后台运行的活动。我的问题是......是有可能做到这一点,如果是的话怎么能后台服务通知的当前活动或应用程序?有这个透水文章,但没有明确的答案......感谢您的任何输入或帮助。这里是语音活动......从另一个计算器后采取的:

Is it possible to implement an activity as a service? My activity is a voice recognition activity. I want to have the activity running in the background of the app constantly checking for voice and when the user says a command it will recognize it and then perform the action. My question is...is it possible to do this and if so how can the background service notify the current activity or application? There was a pervious post on this but no clear answer...Thanks for any input or help. Here is the voice activity...taken from another stackoverflow post:

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.speech.RecognitionListener; import android.speech.RecognizerIntent; import android.speech.SpeechRecognizer; import android.widget.Button; import android.widget.TextView; import java.util.ArrayList; import android.util.Log; public class voiceRecognitionTest extends Activity implements OnClickListener { private TextView mText; private SpeechRecognizer sr; private static final String TAG = "MyStt3Activity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button speakButton = (Button) findViewById(R.id.btn_speak); mText = (TextView) findViewById(R.id.textView1); speakButton.setOnClickListener(this); sr = SpeechRecognizer.createSpeechRecognizer(this); sr.setRecognitionListener(new listener()); } class listener implements RecognitionListener { public void onReadyForSpeech(Bundle params) { Log.d(TAG, "onReadyForSpeech"); } public void onBeginningOfSpeech() { Log.d(TAG, "onBeginningOfSpeech"); } public void onRmsChanged(float rmsdB) { Log.d(TAG, "onRmsChanged"); } public void onBufferReceived(byte[] buffer) { Log.d(TAG, "onBufferReceived"); } public void onEndOfSpeech() { Log.d(TAG, "onEndofSpeech"); } public void onError(int error) { Log.d(TAG, "error " + error); mText.setText("error " + error); } public void onResults(Bundle results) { String str = new String(); Log.d(TAG, "onResults " + results); ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); for (int i = 0; i < data.size(); i++) { Log.d(TAG, "result " + data.get(i)); str += data.get(i); } mText.setText("results: "+String.valueOf(data.size())); } public void onPartialResults(Bundle partialResults) { Log.d(TAG, "onPartialResults"); } public void onEvent(int eventType, Bundle params) { Log.d(TAG, "onEvent " + eventType); } } public void onClick(View v) { if (v.getId() == R.id.btn_speak) { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test"); intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5); sr.startListening(intent); Log.i("111111","11111111"); } }

}

推荐答案

你可以做的就是启动识别活动将监听命令,当它找到一个合适的命令,它会做任何你想做的事情在那个特定的命令。这个简单的方法的问题是,该活动将不断地监听语音输入,更重要的是它需要在重点和在后台没有运行...

What you can do is launch the recognizer activity which will listen for commands and when it finds an appropriate command it will do whatever you want it to do on that particular command. The problem with this simple approach is that the activity will constantly be listening for speech input and more importantly IT NEEDS TO BE IN FOCUS and not running in background...

developer.android/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html

更多推荐

语音识别作为后台服务

本文发布于:2023-11-27 05:03:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636711.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:后台   语音识别

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!