Paso 6: Escribir Software
Componentes primarios
CMU Sphinx es un proyecto de reconocimiento de voz de código abierto mantenido por Carnegie Mellon. El sistema consta de dos partes: reconocedor código y archivos con voz modelo y modelo de lenguaje. Era fácil de compilar el código de la biblioteca para Android. Hay un gran ejemplo publicado por creadores de CMU Sphinx. Uno puede enseñar CMU Sphinx su propia pronunciación. Todo lo que se tiene que hacer es grabar 20 oraciones y ejecutar archivos generados pensamiento una herramienta suministrada. Esto puede aumentar significativamente la calidad de reconocimiento. Es más, uno puede construir un modelo de lengua. Esto básicamente diría reconocedor de qué palabras y frases a esperar. En mi caso una frase principal fue " nombrede la llamada", donde nombre es uno de los nombres de mi agenda. Este modelo también aumenta calidad de reconocimiento.
Uno podría preguntarse: ¿por qué no utilizar Google Voice? Por desgracia, es realmente malo en entender mi Pronunciación. Y también no tan buenos en el reconocimiento de nombres.
Uno podría preguntarse: ¿por qué no usar regulador micro especial? Ciertamente he considerado este enfoque. Una solución que encontré fue sensorial. Por desgracia, parecía demasiado caro. Bueno, parece que tendría que hacer la misma cantidad de trabajo, como con CMU Sphinx y resultará en calidad comparable, pero tendría que pagar por el chip.
"Ningún generador de discurso" – yo estaba muy convencido en esto después de probar varios generadores diferentes. Todos los motores de texto a voz crean una voz muy poco natural. Por lo tanto, tuve que pedir un humano para registrar todas las frases que posiblemente pueda contar mi teléfono. Es más, la hizo leer cada frase vario tiempo. Durante la reproducción de escoger una versión al azar de la frase; Esto crea una fuerte ilusión de un ser humano real en el otro extremo.
PJSIP – es una implementación open-source de la pila SIP. En otras palabras, es abrir biblioteca de VoIP. No tengo mucho problemas con ella: descargado, compilado y usado. CSipSimple es un gran proyecto de código abierto que también lo utiliza. Este proyecto muy útil, ya que contenía algunos ejemplos de gran uso.
Uno podría preguntarse: ¿por qué no usar Skype? Esta era mi idea original. Me he suscrito al programa de desarrolladores de Skype. Desgraciadamente leer el contrato de licencia reveló que SDK de Skype no se puede instalar en cualquier dispositivo controlado por Android.
Uno podría preguntarse: ¿por qué no SIP stack que se construye en Android? Por desgracia, la pila se ha añadido sólo en Android 2.3. Archos 28 corre 2.2.
Flujo de trabajo
Cuando el teléfono está descolgado:
- Espere un segundo
- Decir "Número, por favor!"
- Iniciar reconocimiento de voz
- Si reconoce el " nombrede la llamada", ir a siguiente, si no decir "lo siento, no tengo que" ir a 3
- Diga "llamar nombre..."
- Iniciar reconocimiento de voz
- Si ve reconocido "no" o "stop" a 2, de lo contrario ir a
- Hacer una llamada VoIP
- Decir "Llamada colocado"
- Espere hasta que se termina la llamada
- Decir "Llamada terminada"
Cuando se recibe llamada anillo de la campana y esperar hasta que es recogido ya sea teléfono u otro extremo finalizar una llamada o 20 segundos pase. Suena la campana con un intervalos de segundos.
Formato de App Android
Aplicación de teléfono es realmente un servicio de fondo. También es una aplicación de usuario espera luz que muestra el estado actual. Los servicios se inicia en el inicio de la aplicación o el lanzamiento de la aplicación de usuario.
Donde se encuentra la fuente
Todo el código que escribí podría encontrarse en el código de google. Necesita descargar y compilar PJSIP y CMU Sphinx.