En este art铆culo, quiero hablar sobre mi larga pasi贸n: estudiar y trabajar con campos lejanos de micr贸fonos (arreglos de micr贸fonos).
El art铆culo ser谩 interesante para aquellos que gustan de construir sus asistentes de voz, responder谩 algunas preguntas a las personas que perciben la ingenier铆a como un arte, y tambi茅n que quieren probarse en el papel de Q ( esto es de Bond ). Mi humilde historia, espero que pueda ayudarlo a comprender por qu茅 una columna de asistente inteligente hecha estrictamente de acuerdo con el tutorial funciona bien solo si no hay ruido en absoluto. Y tan mal d贸nde est谩n, por ejemplo en la cocina.
Hace muchos a帽os, me interes茅 en la programaci贸n, comenc茅 a escribir c贸digo simplemente porque los maestros sabios me permit铆an jugar solo juegos escritos independientemente. Fue un a帽o tan 87 y era un Yamaha MSX. Sobre este tema, tambi茅n hubo una primera puesta en marcha. Todo est谩 estrictamente de acuerdo con la sabidur铆a: "Elija un trabajo a su gusto, y no tendr谩 que trabajar un solo d铆a en su vida" (Confucio).
Y as铆 han pasado los a帽os, y todav铆a estoy escribiendo c贸digo. Incluso un pasatiempo con un c贸digo, bueno, a excepci贸n del patinaje sobre ruedas, para calentar el cerebro y "No olvidar茅 al matan", esto funciona con el micr贸fono Far Fields (matriz de micr贸fonos). En vano los maestros pasaron tiempo conmigo.
Qu茅 es y d贸nde se aplica
El asistente de voz que lo escucha generalmente tiene una variedad de micr贸fonos. Los encontramos en sistemas de videoconferencia. En la comunicaci贸n colectiva, la mayor parte de la atenci贸n se presta al habla, por supuesto, no miramos constantemente al hablante cuando nos comunicamos, pero hablar directamente al micr贸fono o al auricular es restrictivo e inconveniente.
Casi todos, un cliente respetado, un fabricante de tel茅fonos m贸viles utiliza de 2 o m谩s micr贸fonos en sus creaciones (s铆, s铆, detr谩s de estos agujeros hay micr贸fonos detr谩s, arriba, abajo, detr谩s). Por ejemplo, en iPhone 3G / 3GS era el 煤nico, en la cuarta generaci贸n de iPhones hab铆a dos y en la quinta ya hab铆a tres micr贸fonos. En general, esto tambi茅n es una variedad de micr贸fonos. Y todo esto para una mejor audibilidad del sonido.
Pero volvamos a nuestros asistentes de voz
驴C贸mo aumentar el rango de audici贸n?
"necesita orejas grandes"
Una idea simple: si para escuchar el que est谩 cerca, solo un micr贸fono es suficiente, entonces para escuchar desde lejos, debe usar un micr贸fono m谩s costoso con un reflector, similar a los o铆dos de los zorros fenech:

(Wikipedia)


De hecho, esto no es parte de la suite furry, sino un dispositivo serio para cazadores y exploradores.

Lo mismo, solo en tubos resonadores

En el habitat.
(Tomado de https://forum.guns.ru )

Di谩metro del espejo de 200 mm a 1,5 m.
(m谩s de esto ver http://elektronicspy.narod.ru/next.html )
"Necesito m谩s micr贸fonos"
驴O tal vez si pones muchos micr贸fonos baratos, entonces la cantidad entrar谩 en calidad y todo saldr谩 bien? Zerghrash solo con micr贸fonos.
Extra帽o, pero funciona en la vida real. Es cierto con muchos matan, pero funciona. Y hablaremos de esto en la siguiente secci贸n.
驴Y c贸mo aprender a escuchar m谩s sin hermosos cuernos?

Uno de los problemas con los sistemas de bocina es que puede escuchar claramente lo que est谩 enfocado. Pero si necesita escuchar algo desde una direcci贸n diferente, debe hacer una "finta con los o铆dos" y redirigir f铆sicamente el sistema en otra direcci贸n.
Y sobre la relaci贸n se帽al / ruido en sistemas con matrices de micr贸fonos, de alguna manera es mejor en comparaci贸n con un micr贸fono convencional.
En las matrices de micr贸fonos, as铆 como en sus parientes m谩s cercanos, PAR (antenas de matriz en fase), no necesita encender nada. Lea m谩s en la secci贸n de Beamforming. F谩cil de ver:

Un micr贸fono desenfocado (imagen izquierda) graba todos los sonidos desde todas las direcciones, no solo el que necesita.
驴De d贸nde viene la gran variedad? En la imagen de la derecha, el micr贸fono escucha atentamente solo una fuente. Como si estuviera enfocando, recibe una se帽al de solo una fuente seleccionada, y no un desastre de posibles fuentes de ruido, y una se帽al pura simplemente se amplifica (se hace m谩s fuerte) sin el uso de t茅cnicas sofisticadas de reducci贸n de ruido. Un poco como una boquilla, pero con una tracci贸n mate.
驴Qu茅 hay de malo con la reducci贸n de ruido?
Cuando se aplica una reducci贸n de ruido compleja, muchos defectos significan que parte de la se帽al desaparecer谩, junto con parte de la se帽al, el sonido cambiar谩 y, para el o铆do, parece una coloraci贸n caracter铆stica del sonido con reducci贸n de ruido y como resultado de la ilegibilidad. Esta ilegibilidad es visible para los hablantes de ruso que desean escuchar estos silbidos del interlocutor. Bueno, y adem谩s, como resultado de la reducci贸n de ruido, el oyente no escucha ninguna se帽al de identificaci贸n que lo conecte con el interlocutor (respiraci贸n, olfateo y otros ruidos que acompa帽an al habla en vivo). Esto crea algunos problemas, porque en el discurso coloquial todo esto se escucha, y solo ayuda a evaluar el estado y la actitud del interlocutor hacia usted. La ausencia de ellos (ruido) mientras escuchamos la voz provoca sensaciones desagradables y reduce el nivel de percepci贸n, comprensi贸n e identificaci贸n. Bueno, si un asistente de voz lo escucha, la reducci贸n de ruido hace que sea dif铆cil reconocer tanto la frase clave como el discurso posterior. Es cierto, hay un truco de la vida: debe entrenar el reconocedor en una muestra grabada teniendo en cuenta las distorsiones de la reducci贸n de ruido utilizada.
Aquellos que est谩n familiarizados con el problema de las palabras c贸ctel a煤n pueden ir a tomar un caf茅 o un c贸ctel, y realizar un experimento de campo, aquellos con ganas de leer, contin煤an.

Brevemente sobre el matan en el que trabaja:
DOA (determinaci贸n de direcci贸n y, si es posible, localizaci贸n a la fuente):
Ser茅 breve, porque el tema es muy extenso, esto se hace con la ayuda de magia blanca, gris u oscura (dependiendo del tema preferido en el IDE) y matan. el principal Una forma frecuente de jugar DOA es analizar correlaciones y otras cosas entre pares de micr贸fonos (generalmente de di谩metro opuesto).
Life hack: para la investigaci贸n, es mejor elegir una matriz con una disposici贸n circular de micr贸fonos. El beneficio es que es f谩cil recopilar estad铆sticas de pares con diferentes distancias entre micr贸fonos, de di谩metro m谩ximo y m铆nimo entre micr贸fonos, si lleva pares en acordes y con diferentes acimutes (direcciones) a la fuente.
Formaci贸n de haces: la forma m谩s sencilla y f谩cil de entender es -delay & sum (DAS y FDAS) - forma de haz basada en delay y sum.
Para efectos visuales:

(Tomado de http://www.labbookpages.co.uk/audio/beamforming/delaySum.html )
Life hack: no te olvides de las diferentes longitudes de onda y para cada frecuencia calculamos nuestra diferencia de fase tn
Un patr贸n de radiaci贸n aproximado se ver谩 as铆

Detalles y con f贸rmulas
Aquellos que no han olvidado c贸mo fumar un matan pueden participar en JIO-RLS (m铆nimos cuadrados de rango reducido adaptativos iterativos conjuntos). Muy similar al sabor del descenso en gradiente, ya sabes.

As铆 que resumimos: usando m茅todos convencionales, lograr una calidad comparable a la de un micr贸fono matricial es dif铆cil. Despu茅s de aplicar la definici贸n de la direcci贸n a la fuente, y como resultado de esto, solo escuchamos la fuente que se necesita, nos deshacemos del ruido y la reverberaci贸n del medio, incluso uno que es poco audible (efecto Haas).
Asistente de voz: c贸mo se ve dentro
Entonces, 驴c贸mo es el esquema de procesamiento de sonido de un asistente de voz experimentado:

La se帽al del conjunto de micr贸fonos se alimenta a un dispositivo en el que formamos un haz a una fuente de sonido (formaci贸n de haz), eliminando as铆 la interferencia. Luego comenzamos a reconocer el sonido de este rayo, por lo general, no es suficiente para el reconocimiento de alta calidad de los recursos del dispositivo, y la mayor铆a de las veces la se帽al se env铆a a la nube para su reconocimiento (Microsoft, Google, Amazon eligen).
El lector atento se dar谩 cuenta: Y en la imagen con la descripci贸n hay una especie de cuadrado de la palabra No, y 驴por qu茅 no reconocimiento inmediato, como se prometi贸?

驴Por qu茅 se dibuja probablemente este cuadrado extra en el diagrama?
Y porque constantemente transmites una se帽al de todas las fuentes de ruido a Internet para escuchando El reconocimiento de cualquier recurso no es suficiente. Por lo tanto, comenzamos a reconocer solo cuando se dieron cuenta de que definitivamente lo quer铆an de nosotros, y para esto dijeron un hechizo especial: ok Google, Siri o Alex, o me llamaron cortan. Y el clasificador de palabras Notifier suele ser una neurona y funciona directamente en el dispositivo. En la construcci贸n del clasificador tambi茅n hay muchas cosas interesantes, pero hoy no se trata de eso.
Y de hecho, el diagrama se ve as铆:

(mis garabatos)
Se pueden formar varios rayos en diferentes fuentes de se帽al, y estamos buscando una palabra especial en cada uno de ellos. Pero m谩s adelante procesaremos al que dijo la palabra correcta.
El siguiente paso es el reconocimiento en la nube, cubierto repetidamente en Internet, hay muchos tutoriales en 茅l.
驴C贸mo puedes unirte a esta matana de vacaciones?
La forma m谩s f谩cil de comprar un tablero de desarrollo. Descripci贸n general de los paneles de control existentes: uno de los m谩s completos, por referencia .
El m谩s amigable para principiantes:
https://www.seeedstudio.com/ReSpeaker-4-Mic-Array-for-Raspberry-Pi-p-2941.html
https://www.seeedstudio.com/ReSpeaker-Mic-Array-v2-0-p-3053.html
basado en XMOS XVF-3000.
Lo aplico yo mismo
Hecho como me gusta: FPGA con una interfaz abierta controla los micr贸fonos de la matriz y se comunica con ella a trav茅s de SDA.
Mis haza帽as para cruzar Android Things y Mic Array:
Ciertamente, hay muchos ejemplos de este tablero (Voz), pero es conveniente para m铆 usarlo en Cosas.
Argumentos por las cosas:
Puedes construir una herramienta flexible y poderosa:
- conveniente que puede usar la pantalla como un dispositivo separado
- se puede usar como un dispositivo sin cabeza, es decir, hacer una transferencia a trav茅s de la red (crear una API para transferir a otro dispositivo)
- depuraci贸n conveniente
- muchas bibliotecas, incluso para transmisi贸n a trav茅s de la red;
- herramientas de an谩lisis - mucho.
- y si parec铆a un poco, entonces es posible conectar bibliotecas Sishnoy
Por ejemplo, yo uso:
- an谩lisis de archivos de sonido
- HRTF,
- Formaci贸n \ construcci贸n de clasificadores.
Y luego, si tiene que portar / reescribir el c贸digo en alg煤n tipo de incrustaci贸n, de alguna manera es m谩s f谩cil hacerlo con el c贸digo Java.
Desafortunadamente, el ejemplo de los autores de la junta de Things fue un poco inoperante, as铆 que hice mi proyecto de demostraci贸n (naturalmente, puedo).
En resumen, lo que hay all铆: toda la magia negra de sondear r谩pidamente los micr贸fonos, hacemos FFT en C ++ y visualizaci贸n, an谩lisis e interacci贸n de red, en Java.
Planes de desarrollo futuro.
Fuente de planes e inspiraci贸n al mismo tiempo: ODAS .

As铆 que quiero hacer lo mismo, solo en Cosas y sin fallas.
- Porque ODAS es un poco inc贸modo de usar.
- Necesito una herramienta normal para trabajar
- Porque puedo y me gusta este tema
- Las herramientas de hardware usadas satisfacen la complejidad de la tarea.
Mis planes se basan en este (mi propio) repositorio .
Y recordar
"Si tiene algo para complementar o criticar, no dude en escribir sobre eso en los comentarios, porque una cabeza es peor que dos, dos son peor que tres y n-1 es peor que n" nikitasius