Estoy desarrollando una aplicación y necesito alguna forma de comparar 2 voces si coinciden o no, sé que Voice Recognizer es una forma de hacerlo, pero ya que (creo) necesita traducir primero la voz a una cadena, no será tan adecuado para otro idioma aparte del idioma soportado por el reconocedor de voz ... ¿alguna idea? Al igual que el teléfono viejo días solía hacer, la etiqueta de voz en el que acaba de comparar la entrada de voz con la voz que grabó anteriormente durante la configuraciónComparar voz wav en Android o etiqueta de voz (comandos de voz) API
Respuesta
Un relativamente manera sencilla de hacerlo es utilizar la FFT (Fast Fourier Transform) convertir los datos de dominio de tiempo del archivo WAV original en datos de dominio de frecuencia (en los que cada valor en su matriz transformada representa la magnitud/intensidad relativa de una banda de frecuencia particular).
Si la misma persona habla la misma palabra dos veces, los datos de dominio de tiempo resultantes seguirán siendo muy diferentes numéricamente en los dos archivos WAV. La conversión de ambos archivos WAV al dominio de frecuencia (usando el mismo tamaño de ventana FFT para ambos, incluso si los dos archivos son de longitudes ligeramente diferentes) producirá matrices de frecuencia que son mucho más similares entre sí que los archivos WAV originales.
Desafortunadamente, no he podido encontrar ninguna biblioteca FFT específicamente para Android. He aquí una pregunta que hace referencia a algunas bibliotecas basadas en Java:
Gracias, pero estoy realmente sorprendido, ¿por qué mi viejo teléfono moto puede hacerlo y este nuevo androide estúpido no puede, sólo quiero grabar mi voz y luego decirlo nuevamente y sabrá si está cerca del original! No quiero hacer esto complicado, quiero decir, si serán exactamente iguales, no hay problema, pero hay muchos algoritmos para decidir si está cerca del original o no, ¡no quiero reinventar la rueda! – rami
Sí, parece que las cosas de reconocimiento de voz introducidas en Android no funcionan como tú quieres. Creo que los fabricantes se han estado alejando de cómo su moto reconocía el habla, ya que esa forma más antigua dependía de "entrenar" a su teléfono para reconocer su voz particular. Esto es lo que quieres, por supuesto, pero se consideró una debilidad seria y es presumiblemente por qué nadie lo hace así nunca más. – MusiGenesis
MusiGenesis tiene razón. La antigua forma de hacer reconocimiento de voz era que el teléfono tenía todas las bibliotecas y el software de procesamiento en el dispositivo. Los androides abren una transmisión a Google y en realidad estás 'hablando' con los servidores de Google, no con tu teléfono. Los servidores luego envían la interpretación al teléfono. Es más preciso, admite más funciones y ahorra espacio en el teléfono de esta manera. Pero, es perjudicial para lo que estás tratando de hacer, lo cual es desafortunado. :( – Brandon
Una idea es comparar la similitud de las voces en sus spectograms. Las características del espectrograma son robustas y resisten al ruido, que es una buena referencia para analizar dos voces. Si toma este enfoque, primero debe averiguar las características de las voces y debe saber cómo comparar las características en dos espectrogramas, se refiere al reconocimiento de patrones.
Esta api http://code.google.com/p/musicg-sound-api/ está escrito en Java y se puede utilizar en Android. Captura el espectrograma de onda.
- 1. API de texto a voz (generación de voz) y de voz a texto (reconocimiento de voz)?
- 2. Android TTS Voz masculina Cambio de voz
- 3. Cómo usar la API de comandos de voz en Android
- 4. Reconocimiento de voz para android
- 5. Windows 8 voz a texto y texto a voz API
- 6. Reconocimiento continuo de voz Android
- 7. Entrada de Voz/Voz Directa en el navegador móvil
- 8. detección de voz en la Solicitud Android
- 9. Reconocimiento de voz en PHP?
- 10. Voz a texto en Android
- 11. API de reconocimiento de voz Java
- 12. voz a texto en android
- 13. ¿Cómo grabar voz en Android?
- 14. Cómo hacer: comandos de voz en una aplicación de Android
- 15. C# reconocimiento de voz
- 16. Usar texto a voz en una llamada de voz
- 17. ¿Qué lectores de voz admiten atributos de voz CSS3?
- 18. Texto a voz (TTS) -Android
- 19. Android vietnamita ¿Texto a voz?
- 20. reconocimiento de voz Java
- 21. API web de texto a voz
- 22. Reconocimiento de voz sin Internet en Android
- 23. C# reconocimiento de voz
- 24. C# Reconocimiento de voz
- 25. Audio/Visualización de voz
- 26. Algoritmo para comparación de voz
- 27. Buscar tono de voz en Android
- 28. Grabar voz con Java
- 29. Android - Intención de acción de voz personalizada
- 30. Cambiador de voz para iPhone
¿Está tratando de reconocer que ambas grabaciones fueron del mismo altavoz (autenticación de voz o identificación del hablante) o está tratando de determinar si se pronunciaron las mismas palabras? ¿A qué estás emparejando? la identidad del hablante o las palabras que habló? –
Hola. ¿Cómo resuelves esto? –