Desarrollo de Apps Flutter con Reconocimiento de Voz y TensorFlow

Clase 9 de 29Curso de Integración Módulos Nativos iOS/Android para Flutter

Resumen

El desarrollo de aplicaciones móviles con reconocimiento de voz es cada vez más accesible y poderoso gracias a librerías como Speech-to-Text para Flutter, combinada con TensorFlow. Esta funcionalidad permite dictar texto a través del micrófono y convertir automáticamente la voz en texto escrito. Para utilizarla, se requiere una configuración adecuada junto con algunos ajustes específicos en Android e iOS.

¿Cómo descargar la librería Speech-to-Text en Flutter?

Para comenzar con Speech-to-Text, lo primero que se realiza es agregar la dependencia en el archivo pushback.yam dentro de las dependencias existentes. La librería se escribe así:

speech_to_text: ^[versión indicada en la clase]

Luego, se ejecuta el comando manual Flutter pub get asegurando que la librería quede correctamente instalada y disponible para usarse en el proyecto Flutter.

¿Qué permisos necesitas configurar en Android?

Al implementar Speech-to-Text, Android requiere permisos específicos:

  • Grabar audio: necesario para acceder al micrófono del dispositivo.
  • Acceso a Internet: esencial para que la librería využice recursos externos.

Estos permisos se agregan en el archivo AndroidManifest.xml:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />

Ambos permisos deben colocarse fuera de la etiqueta <application> para una correcta configuración.

¿Qué ajustes necesitas hacer para habilitar Speech-to-Text en iOS?

Del lado de iOS, es crucial modificar el archivo info.plist, ubicado en la carpeta iOS del proyecto. Se deben agregar dos etiquetas:

  • Una etiqueta para habilitar el uso del micrófono:
<key>NSMicrophoneUsageDescription</key>
<string>Explicación del uso del micrófono</string>
  • Una segunda etiqueta para indicar el uso específico del reconocimiento del habla:
<key>NSSpeechRecognitionUsageDescription</key>
<string>We need speech recognition to transcript speech.</string>

Luego, se ejecuta en la terminal dentro de la carpeta iOS el comando:

pod install

Esto asegura que estas configuraciones queden actualizadas y reconocidas por el sistema operativo.

¿Cómo implementar el servicio Speech-to-Text con Flutter?

En Flutter, para manejar la funcionalidad Speech-to-Text, debes crear un servicio como archivo .dart en la carpeta de la librería. A continuación, importas las funcionalidades específicas del package, como speech-recognition-result.dart y el archivo principal de la librería Speech-to-Text.

El código básico para empezar luciría de la siguiente manera:

import 'package:speech_to_text/speech_to_text.dart' as stt;
import 'package:speech_to_text/speech_recognition_result.dart' as stt;

class SpeechService {
  final stt.SpeechToText speech = stt.SpeechToText();

  bool _isListening = false;
  String _recognizedText = "Indicación inicial...";

  // Aquí se añadirán métodos para manejar inicio y detención del reconocimiento.
}

Luego, implementas métodos específicos para empezar y detener la escucha. Asimismo, se añaden getters y setters para manejar el estado y el texto reconocido.