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: handle exception 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+ } Toast.makeText(this, resultString, 1).show(); } super.onActivityResult(requestCode, resultCode, data); } }
Su principio principal es enviar el audio a la nube de Google, luego procesar en la nube, coincidir con los datos correspondientes y enviarlos al cliente.
No olvide agregar la permiso de acceso a la red en el manifest:
<uses-permiso android:name="android.permission.INTERNET" />
Efecto después de ejecutar:
Haga clic en el botón de inicio de voz y luego comience a hablar (asegúrese de que la red del teléfono esté abierta):
Estoy esperando los datos en la nube, debido a que2La tarjeta G, esperé mucho tiempo y aún no se puede cargar, intentaré con la wifi de la empresa cuando vuelva a la oficina, si se obtienen datos en la nube, se imprimirán de manera Toast.
Aquí está la recopilación de información sobre la tecnología de reconocimiento de voz de Android, continuaremos complementando información relevante, gracias por su apoyo a este sitio!
Declaración: El contenido de este artículo se ha obtenido de Internet, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#w.3Aviso: El contenido de este artículo se ha obtenido de Internet, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante, una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.