Pregunta

Yo estaba buscando para poner en práctica la detección de tono de voz en el iPhone usando el método SPH. Pero los tonos detectados no son muy precisos. Performous hace un trabajo decente de detección de tono.

Me miró a través del código pero no consiguió plenamente la teoría detrás de los cálculos. Utilizan FFT y encontrar los picos. Pero la parte donde utilizan la fase de salida de la FFT, me consiguió confused.I cifra que utilizan algunas heurísticas para frecuencias de la voz.

Así que, ¿Podría alguien por favor explicar el algoritmo utilizado en Performous para detectar terreno de juego?

¿Fue útil?

Solución

[Performous] [1] extractos terreno de juego desde el micrófono. También es el código de fuente abierta. He aquí una descripción de lo que hace el algoritmo, del tipo que se codifica (Tronic en irc.freenode.net # Performous).

  • entrada PCM (con buffering)
  • FFT (1024 muestras a la vez, eliminar 200 muestras desde el frente de la memoria intermedia después)
  • método de reasignación (en contra de la FFT anterior que fue de 200 muestras antes)
  • Filtrado de picos (esta parte se podría hacer mucho mejor o incluso dejado de lado)
  • La combinación picos en conjuntos de armónicos (que llamamos la combinación de un tono)
  • Temporal filtrado de tonos (actualizar el conjunto de tonos detectada anteriormente en lugar de simplemente utilizar los nuevos detectados unos)
  • Elige el mejor tono vocal (límites de frecuencia, la ponderación, podría utilizar la matriz armónica también, pero no creo que hacemos)

Todavía no fue capaz de esta información para entenderlo y ponerlo en práctica. Si alguien logra esto, por favor, por favor, publicar sus resultados aquí, y comenta esta respuesta para que notifica SO mí.

La tarea sería la creación de un mínimo de C ++ envoltura alrededor de este código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top