Discurso a texto en Android
Estoy buscando para crear una aplicación que tiene el discurso al texto.
Soy consciente de este tipo de capacidad usando el RecognizerIntent: http://android-developers.blogspot.com/search/label/Speech%20Input
- ¿Es posible interceptar datos de voz durante la llamada?
- Tiempo de espera del reconocimiento de voz de Google
- Cómo manejar ERROR_RECOGNIZER_BUSY
- Comparar voz wav en android o etiqueta de voz (comandos de voz) API
- Reconocimiento de voz en Android con clip de sonido grabado?
Sin embargo – no quiero una nueva intención de ser aparecido, quiero hacer el análisis de algunos puntos en mi aplicación actual, y no quiero que algo pop que indica que actualmente está tratando de grabar su voz.
¿Alguien tiene alguna idea sobre la mejor manera de hacer esto. Tal vez estaba pensando en intentar Sphinx 4 – pero no sé si esto sería capaz de ejecutar en Android – ¿alguien tiene algún consejo o experiencia ?!
Me preguntaba si podría alterar el código aquí a quizás no molesto para demostrar la UI o el botón y apenas hacer el proceso: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/ Apis / app / VoiceRecognition.html
Aclamaciones,
- ¿Cómo puedo utilizar el reconocimiento de voz sin el diálogo molesto en los teléfonos Android
- Aplicación para Android con direcciones de voz GPS
- Android SpeechRecognizer: stopListening () contra cancelar ()
- Voice Matcher para combinar la contraseña de voz en Android (Comparar voz)
- Talking App como hablar, la grabación de audio no funcionó en todos los dispositivos
- SpeechRecognizer lanza onError en la primera escucha
- Guardar la entrada de audio del motor de reconocimiento de voz de Android Stock
- Android TTS Masculino Masculino Voz Cambio
Si no desea usar RecognizerIntent
para hacer reconocimiento de voz, podría utilizar la clase SpeechRecognizer para hacerlo. Sin embargo, usar esa clase es un poco más complicado que usar la intención. Como nota final, sugeriría que el usuario sepa cuándo está grabado, de lo contrario podría estar muy preparado, cuando finalmente se entere.
Editar: Un pequeño ejemplo inspirado (pero cambiado) de esta entrada de desbordamiento de pila
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, "com.domain.app"); SpeechRecognizer recognizer = SpeechRecognizer .createSpeechRecognizer(this.getApplicationContext()); RecognitionListener listener = new RecognitionListener() { @Override public void onResults(Bundle results) { ArrayList<String> voiceResults = results .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); if (voiceResults == null) { Log.e(TAG, "No voice results"); } else { Log.d(TAG, "Printing matches: "); for (String match : voiceResults) { Log.d(TAG, match); } } } @Override public void onReadyForSpeech(Bundle params) { Log.d(TAG, "Ready for speech"); } @Override public void onError(int error) { Log.d(TAG, "Error listening for speech: " + error); } @Override public void onBeginningOfSpeech() { Log.d(TAG, "Speech starting"); } @Override public void onBufferReceived(byte[] buffer) { // TODO Auto-generated method stub } @Override public void onEndOfSpeech() { // TODO Auto-generated method stub } @Override public void onEvent(int eventType, Bundle params) { // TODO Auto-generated method stub } @Override public void onPartialResults(Bundle partialResults) { // TODO Auto-generated method stub } @Override public void onRmsChanged(float rmsdB) { // TODO Auto-generated method stub } }; recognizer.setRecognitionListener(listener); recognizer.startListening(intent);
Importante: Ejecute este código desde el subproceso de interfaz de usuario.
Lo que se construye en Android (que se inicia a través de la intención) es una actividad de cliente que captura su voz y envía el audio a un servidor de Google para su reconocimiento. Usted podría construir algo similar. Usted podría hospedar la esfinge usted mismo (o utilizar servicios de reconocimiento de nube como Yapme.com), capturar la voz usted mismo, enviar el audio a un reconocedor, y volver a los resultados de texto a su aplicación. No sé de una manera de aprovechar los servicios de reconocimiento de Google sin el uso de la Intención en Android (oa través de Chrome).
El consenso general que he visto hasta ahora es que los teléfonos inteligentes de hoy en día no tienen realmente la potencia para hacer Sphinx-como el reconocimiento de voz. Es posible que desee explorar la ejecución de un reconocedor de clientes para usted, pero Google utiliza el reconocimiento de servidor.
Para obtener información relacionada, consulte:
- Servicio de reconocimiento de voz de búsqueda por voz de Google
- ¿Es posible utilizar la API de Android fuera de un proyecto de Android?
- API de reconocimiento de voz