English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
今天从网上找了个例子实现了语音识别,个人感觉挺好玩的,就把代码贴出来与大家分享下:
Android中主要通过RecognizerIntent来实现语音识别,其实代码比较简单,但是如果找不到设置,就会抛出异常ActivityNotFoundException,所以我们需要捕捉这个异常。而且语音识别在模拟器上是无法测试的,因为语音识别是访问google云端数据,所以如果手机的网络没有开启,就无法实现识别声音的!一定要开启手机的网络,如果手机不存在语音识别功能的话,也是无法启用识别!
下面是RecognizerIntentActivity中的代码:
public class RecognizerIntentActivity extends Activity { private Button btnReconizer; private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.reconizer); btnReconizer=(Button) this.findViewById(R.id.btnRecognizer); btnReconizer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try{ //نقل نموذج التعرف على الصوت من خلال Intent لفتح الصوت Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //نموذج اللغة والتعرف على الصوت بالطريقة الحرة intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //إشارة ببدء الصوت intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "بدء الصوت"); //بدء التعرف على الصوت startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); }catch (Exception e) { // TODO: معالجة الاستثناء e.printStackTrace(); Toast.makeText(getApplicationContext(), "لا يمكن العثور على جهاز الصوت", 1).show(); } } ); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub //الحصول على البيانات من غوغل if(requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){ //الحصول على أحرف الصوت ArrayList<String> results=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); String resultString=""; for(int i=0;i<results.size();i++){ resultString+=results.get(i); } Toast.makeText(this, resultString, 1).show(); } super.onActivityResult(requestCode, resultCode, data); } }
النظام الأساسي الخاص به هو إرسال الصوت إلى السحابة Google، ثم معالجة السحابة، التطابق مع البيانات المناسبة، وإرسالها إلى العميل.
لا تنسى، في manifest أضف صلاحية الوصول إلى الشبكة:
<uses-permission android:name="android.permission.INTERNET" />
تأثير بعد التنفيذ:
انقر على زر بدء التعرف على الصوت، ثم تبدأ بالتحدث (تأكد من أن شبكة الهاتف المحمول مفتوحة):
أنتظر بيانات السحابة، بسبب أن هذا هو بطاقة 2G، استغرقت وقتاً طويلاً حتى لم يتم تحميلها، سأحاول استخدام شبكة Wi-Fi في الشركة عند العودة إلى الشركة، إذا تم الحصول على بيانات السحابة، سيتم طباعة البيانات من خلال طريقة Toast.
هذا هو جمع المعلومات حول تقنية التعرف على الصوت في Android، سيتم إكمال المزيد من المعلومات في المستقبل، شكراً لكم على دعمكم لهذا الموقع!
بيان: محتوى هذا المقال تم جمعه من الإنترنت، حقوق الطبع والتأليف للملكية، محتوى تم إضافته من قبل مستخدمي الإنترنت بذاتهم، هذا الموقع لا يمتلك حقوق الملكية، لم يتم تعديل المحتوى بشكل إنساني، ولا يتحمل أي مسؤولية قانونية ذات صلة. إذا كنت قد وجدت محتوى يشتبه في حقوق الطبع والتأليف، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال #بـ @) للإبلاغ، وتقديم الدليل ذات صلة، إذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتوى المشبوه في حقوق الطبع والتأليف فوراً.