Pregunta

No quiero software de sonido a texto. Lo que necesito es el siguiente:

  • Voy a grabar múltiples (por ejemplo 50+) flujos de audio (grabaciones de emisoras de radio)
  • de que las grabaciones, voy a marcar clips de audio interesantes - sus rangos de longitud de 2 a 60 segundos - habrá pocos miles de estos clips de audio
  • biblioteca debe ser capaz de encontrar otros ejemplos de clips de audio mismas a partir de corrientes de sonido grabados
  • factor de confianza debe ser informado a la entrada usada y adicional proporcionada por lo que el reconocimiento podría realizar mejor la próxima vez

¿Conoce biblioteca de software? LGPL sería más valioso para mí, pero puede ir para la licencia comercial también.

Clips de audio contendrán tanto música, texto, efectos, o cualquier combinación de los mismos. Por lo tanto, el reconocimiento de texto está fuera de la cuestión.

Architecture:. C ++, C # para el pegamento, CUDA si es posible

¿Fue útil?

Solución

No he encontrado ninguna biblioteca (aún), pero dos artículos interesantes, que pueden dar que la terminología y de fondo para refinar las búsquedas:

EDIT: La búsqueda de "huellas digitales de audio" llegó a una página de implementaciones, tanto de código abierto y comercial

.

Este es un introducción a la toma de huellas digitales de audio

Otros consejos

Lo que usted describe es una filtro adaptado y todo lo que necesita es un < a href = "http://en.wikipedia.org/wiki/Cross-correlation" rel = "noreferrer"> correlación cruzada función que debe ser parte de cualquier biblioteca DSP razonable. Dependiendo su elección de la arquitectura del procesador y el idioma que puede incluso ser capaz de encontrar una biblioteca vectorizado que puede realizar esta operación más eficiente.

Si realmente no se preocupan por el rendimiento que podría utilizar Python ...

$ python
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> interesting_clip = [ 5, 7, 2, 1]
>>> full_stream = [ 1, 5, 7, 2, 1, 4, 3, 2, 4, 7, 1, 2, 2, 5, 1]
>>> correlation = scipy.correlate (full_stream, interesting_clip)
>>> print correlation
[56 79 55 28 41 49 44 53 73 48 28 35]
>>> for offset, value in enumerate(correlation) :
...     if (value > 60) :
...         print "match at position", offset, "with value of", value
... 
match at position 1 with value of 79
match at position 8 with value of 73

Mi umbral por encima es arbitraria. Debe determinar experimentalmente lo que es apropiado para usted.

Tenga en cuenta que cuanto más tiempo su "pinza interesante", más tiempo tomará para calcular la correlación. Mientras que los clips más largos ayudarán partidos reales se destacan mejor de los no partidos, es probable que no va a necesitar más que unos pocos segundos.

AudioDB es un código abierto proyecto de C ++ que las búsquedas de secciones similares de flujos de audio ruidosas, y las manijas, y le puede dar una medida de similitud. Se puede ejecutar como cliente / servidor, pero creo que puede hacer un programa independiente.
Las otras respuestas acerca de la correlación DSP son una especie de correcta, pero en general estos algoritmos DSP quieren comparar dos corrientes de la misma longitud, que tienen las partes similares se solapan.
Lo que necesita la obliga a trabajar en segmentos arbitrarios de la corriente; esto es lo que AudioDB fue construido para. (Una aplicación es encontrar referencias ocultas / muestreo de los derechos de autor o mal uso flagrante.) Lo he utilizado para la búsqueda de sonidos que se jugaron hacia atrás, y también se encuentra el caso en el que se introducen algunos cambios de ruido o del habla.
Tenga en cuenta que todavía está en desarrollo, aunque las fechas en la página de inicio parecen fuera. Me gustaría suscribirse a la lista de correo y preguntar cuál es el estado actual es y cómo se puede ir sobre la incorporación de la misma.

Es posible que desee ver en este documento por Li-Chun Wang respecto www.shazam.com .

No es una API pero da detalles de cómo se desarrolló su algoritmo.

Tome una mirada en el Microsoft Speech API (SAPI):
http://msdn.microsoft.com/en- es / library / ee125077% 28VS.85% 29.aspx

Todos los demás requisitos que enumeramos son básicamente los detalles de implementación que se le tiene que aplicar por su cuenta. Por ejemplo, como los interpreta las secuencias de audio de software, puede almacenarlos en el servidor SQL con la indexación de texto completo ... de lo que hacen las búsquedas para encontrar mismos clips similares / audio.

Por supuesto, hay otras maneras de implementar que, y esto no es más que una idea: -)

me gustaría ir algún lugar en línea con la respuesta de Tim Kryger y el uso de funciones simples de correlación estadística, ya que desea permanecer contenido agnóstica.

En cuanto a las características Sin duda tratar MFCC como se usa tanto en el procesamiento del habla y reconocimiento de música (géneros, canciones). Puede encontrar MFCC y una gran cantidad de otras características de audio disponibles en el excelente fuente Vamp plugins (o abrir su más alto nivel paquete, un programa llamado de sonic Annotator ) o alternativamente en el marco Marsyas .

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