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 自动生成的方法存根 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 自动生成的方法存根 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, "Inizia la voce"); //开始语音识别 startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); }catch (Exception e) { // TODO: 处理异常 e.printStackTrace(); Toast.makeText(getApplicationContext(), "Non trovato dispositivo audio", 1).show(); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO 自动生成的方法存根 //回调获取从谷歌得到的数据 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); } }
Il suo principio principale è inviare la voce al cloud di Google, poi il cloud elabora, abbinando i dati corrispondenti, inviandoli al client.
Non dimenticare di aggiungere i permessi di accesso alla rete nel file manifest:
<uses-permission android:name="android.permission.INTERNET" />
Effetto dopo l'esecuzione:
Clicca sul pulsante Inizia riconoscimento vocale e inizia a parlare (devi assicurarti che il telefono sia connesso a Internet):
In attesa dei dati cloud, poiché questo è un SIM card 2G, ho dovuto aspettare a lungo prima che si caricasse, tornerò in ufficio e proverò a connettermi alla rete Wi-Fi dell'ufficio. Se ottengo i dati cloud, li stampo tramite il metodo Toast.
Ecco la raccolta di materiali relativi alla tecnologia di riconoscimento vocale Android, continueremo a integrare ulteriori materiali, grazie per il supporto della nostra community!
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta agli autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.