Deletrearlo bien

Hola a todos!


Muchos de nosotros tenemos poca experiencia en la llamada escritura de voz: solo los psicoanalistas solían grabar sus pensamientos en una grabadora de voz. Ahora el dictado se está volviendo más familiar: el servicio de marcación por voz en los teléfonos inteligentes se ha acostumbrado a ello. Participar como propietario de un producto en el proceso de crear un producto para reconocer el discurso continuo en ruso, comunicarse con los desarrolladores de algoritmos y con los clientes, realizar varias pruebas de sistemas de reconocimiento, observar cómo los usuarios dictan sus textos y tener su propia experiencia al ingresar texto en una computadora usando la voz, Anoté muchas observaciones interesantes. Para comprender mejor cómo usar el reconocimiento automático de voz correctamente, veamos cómo funciona el reconocimiento de voz. La descripción será muy simplificada, pero ayudará a comprender qué errores comete la gente al dictar. Y también:Escribiré este artículo con la ayuda del dictado, haciendo correcciones desde el teclado solo en aquellos lugares donde no puede prescindir de él.

Entonces


Para crear un motor de reconocimiento, necesitamos modelos acústicos y de lenguaje.
El modelo acústico es responsable de correlacionar una pieza de sonido (marco) con el fonema correspondiente. Un fonema es un sonido de voz separado, por ejemplo, "a-percussion", "t-soft", "t" y otros 49. El mayor problema es que muchos fonemas son muy similares entre sí y es bastante difícil distinguir la palabra "automóviles" de la palabra "automóviles" (recuerde cuántas veces vuelve a preguntar cuando le dicen un nombre desconocido). Por lo tanto, el modelo acústico se hace probabilístico: informa que con cierta probabilidad el fonema "a-shock" se pronunció en este fragmento de sonido, con otra probabilidad fue un fonema "a-shock", etc. y da probabilidades a todos los fonemas.


Para tener un modelo acústico de este tipo, primero debemos entrenarlo. Para esto, se toma una gran base de discurso (cientos de horas de discurso grabadas en un micrófono por docenas de hablantes de diferente sexo y edad). La base está marcada para que se sepa qué fonema suena en qué momento. Y luego, después del entrenamiento, obtenemos para cada fonema una cierta función de distribución de probabilidad que describe cómo, en promedio, las personas pronuncian este fonema.

Modelo de idiomaTambién es probabilístico y describe la estructura del lenguaje. Muestra cuán probable (correcta) es esta o aquella frase desde el punto de vista del idioma. Por ejemplo, la frase “mamá lavó el marco” es bastante normal, pero “el marco de la mamá del jabón” ya está equivocado (Voco no le gusta tanto esta frase que reconoce que “mamá lavó a la mamá”). Después de reconocer la siguiente palabra, el modelo de lenguaje determina cómo esta palabra es consistente con palabras reconocidas previamente.
El modelo de lenguaje se entrena en una gran cantidad de datos de texto (gigabytes de textos). Usando estos datos de entrenamiento, calculamos la probabilidad de aparición de palabras en un contexto específico, en función de la frecuencia de aparición de estas frases. Usamos frases de no más de 3 palabras (modelos de lenguaje de 3 gramos). Por lo tanto, el modelo lingüístico no puede ayudar a conciliar, por ejemplo, un adjetivo con un sustantivo si hay dos palabras entre ellos. En este caso, la coincidencia se produce solo debido al modelo acústico.
Como diccionario de reconocimiento, tomamos alrededor de 300 mil de las palabras más frecuentes que cubren el 99% del discurso de una persona promedio.


Ahora tratemos con el reconocimiento mismo


Sabiendo cómo se transcribe cada palabra usando fonemas y conociendo las probabilidades del modelo de lenguaje, podemos construir un gráfico de reconocimiento (máquina de estados finitos). Como conocido rápido de las máquinas de estados finitos, la sección "Máquinas de estados" en este artículo es perfecta . Los fonemas llegan a la entrada de esta columna; los traduce en palabras y palabras en frases.


Gráfico de reconocimiento de palabras: "madre", "jabón", "marco", "platos". En los bordes del gráfico tenemos fonemas como caracteres de entrada (palabra antes de ':'), palabras como caracteres de salida (palabra después de ':') y pesos del modelo de idioma (número después de '/'). '-' significa entrada o salida vacía. Una arista desde el 4to nodo hasta el nodo 0 cicla el gráfico para que se puedan reconocer varias palabras seguidas.

Tras el reconocimiento, obtenemos un fragmento de sonido, un modelo acústico lo convierte en un conjunto de fonemas con probabilidades que entran en la entrada de nuestro gráfico. Por lo tanto, nos movemos a lo largo del gráfico, formando muchas hipótesis. Cada hipótesis tiene un peso que se forma a partir de las probabilidades del modelo acústico y las probabilidades del modelo del lenguaje (ubicado en los bordes del gráfico).
El gráfico de reconocimiento real es un millón de veces más grande que nuestro ejemplo de juguete, por lo que en algún momento habrá demasiadas hipótesis y no habrá suficiente RAM para extraerlas. Para evitar que esto suceda, se utilizan varios métodos para reducir el número de hipótesis. A menudo, estos son dos criterios simples: las hipótesis no deben ser más que un cierto número y cualquier hipótesis no debe perder demasiado con la mejor hipótesis.

Ahora que tenemos un poco de comprensión de la teoría, pasemos a consejos sobre lo que es mejor hacer y lo que es mejor no hacer al dictar.


Hacer SU


Uno de los errores más comunes que cometen los usuarios es el dictado por sílabas. Entrenamos el sistema en el habla ordinaria, por lo que estirar las palabras por sílabas solo confunde el sistema. Al dictar por sílabas, todas las vocales de una palabra se convierten en percusión, los fonemas se pronuncian más, aparecen pausas entre sílabas. Todo esto lleva a un resultado triste, cuando las palabras se dividen en un montón de fragmentos monosilábicos. Por ejemplo, al decir Voco de acuerdo con las sílabas "salir corriendo a la calle" obtenemos el siguiente resultado: "No tienes que presionar SU" o algo así: "No tienes que presionar SU", pero definitivamente no es lo que necesitamos.

Consejo: habla naturalmente como una persona promedio.


¿Cómo demonios te lleva?



Algunas personas hablan muy rápido. Además, tal discurso a menudo reduce las palabras: se tragan las preposiciones, no se hablan los finales, las palabras largas se convierten en un infierno conocido, por ejemplo, en lugar de "Alexander Alexandrovich", se pronuncia el amigo familiar "San Sanych". Las personas a menudo entienden dicho habla sin problemas, ya que el cerebro recupera la información que falta, pero los algoritmos de reconocimiento de voz hacen frente a este problema con dificultad. Por ejemplo, un hombre en lugar de "auto rojo" dijo "autos rojos". Durante el reconocimiento, nuestra hipótesis correcta recibirá probabilidades muy pequeñas al pasar por los fonemas tragados al final de las palabras y, como resultado del aumento de peso, puede que no sea suficiente para la victoria, pero algo de "belleza de Masha" ganará.
Hemos tenido en cuenta algunas reducciones de frecuencia en la pronunciación. Por ejemplo, si dice "cho" en lugar de "qué" o "hola" en lugar de "hola", esto no afectará el resultado del reconocimiento, ya que agregamos las transcripciones apropiadas a nuestro gráfico. El segundo problema que puede esperar que un aficionado dicte a alta velocidad son los homófonos de sintaxis.
"Suspiró y pensó para sí mismo:
¿Cómo demonios te lleva?"

Consejo: si eres propenso a hablar muy rápido, intenta pronunciar las palabras con mayor claridad. Las pausas breves entre palabras lo ayudarán a mantener un ritmo más lento y a no tragar fragmentos de palabras.


Paul patas rally pero


Otro problema para el reconocimiento son los "gritos" y las dudas: una persona comienza a hablar una palabra, comete un error, la parte por la mitad y luego la pronuncia correctamente. Por ejemplo, una persona dice "cayó en paralelo". No hay una palabra "caída" en el diccionario, por lo tanto, en tales casos, el resultado del reconocimiento puede ser muy sorprendente: por ejemplo, el tropiezo y la palabra en sí pueden fusionarse en uno similar en sonido o el resultado del reconocimiento consistirá en varias palabras pequeñas también similares en sonido, por ejemplo "piso de reunión pero ".
Además, una pausa larga puede hacer que el decodificador decida que ha terminado la oración, lo que significa que la coordinación con las palabras ya dichas se interrumpirá.

Consejo: piense de antemano lo que quiere decir, ya que esto reduce significativamente la cantidad de pausas largas y dudas en el habla.


La noche Calle Linterna Farmacia


Las frases cortas son menos reconocidas que las largas. En oraciones cortas, especialmente las de una sola palabra, el modelo de lenguaje prácticamente no funciona. La palabra "máquina" es difícil de distinguir de las palabras: "automóvil", "automóvil", "máquina", y el modelo de lenguaje en este caso se basa únicamente en la aparición de la palabra en los datos de entrenamiento, que, de hecho, no contiene ninguna información útil. Al mismo tiempo, la palabra "automóvil" en la frase "llegó en automóvil" debe ser bien reconocida, ya que el modelo de lenguaje, basado en el contexto ya reconocido "llegado a", tomará la decisión correcta. Las frases cortas también incluyen frases con largas pausas entre palabras, ya que en este caso todo el contexto de pronunciar una palabra antes de una pausa se excluye del trabajo del modelo de lenguaje.

Consejo: Evite frases muy cortas. Si esto no es posible, intente pronunciar claramente las terminaciones.


No dije eso


Sucede que no solo se reconoce lo que dices, sino también el discurso de tu vecino. Como resultado, la letra que escribe en su voz parece una carta del tío Fedor a su madre: "El cabello está cubierto, la cola se está cayendo". Esto es especialmente cierto cuando se usa un micrófono remoto en una computadora portátil o cámara web. Intentamos mejorar la calidad del reconocimiento en ruido y voz de fondo separada, pero en los casos en que el usuario está en silencio, el reconocimiento también puede sintonizar con la voz de fondo silenciosa.

Consejo: Un auricular de calidad y un entorno silencioso ayudarán a mejorar la calidad del reconocimiento.


Como una cola


Voco reconoce el habla rusa, pero algunas palabras populares en inglés, nombres de compañías y programas de productos también están al alcance. Por ejemplo, "Coca-Cola", "Windows" son perfectamente reconocidos. Pero hay un pequeño problema: en inglés, hay sonidos que no están en ruso. Para resolver este problema, transcribimos palabras en inglés con los fonemas rusos más similares, por lo tanto, vale la pena pronunciarlos de la manera rusa. Por ejemplo, Coca-Cola. [kòka kòla]. No muestres tu excelente acento británico [k'əʊkʌ k'əʊla].

Consejo: pronuncia palabras en inglés con acento ruso.


Bayoneta profunda Kutra bayanova lado y mercado del banco de fumadores


Sucede que la palabra no se reconoce, a pesar de que te esfuerzas mucho y sigues todas nuestras recomendaciones. Quizás la razón es que esta palabra no está en el diccionario de reconocimiento. Enseñamos un modelo de lenguaje sobre un tema general (política, economía, cultura, deportes, etc.) y alrededor de 300 mil de las palabras más frecuentes ingresaron al diccionario. Por lo tanto, lo más probable es que no haya términos o apellidos altamente especializados de su jefe. Entonces, el usuario dicta una carta al cliente: querido Vladimir es obligatorio, Vladimir para ejecutarlos, sin ninguno, sin 1, sin rostro. Una y otra vez, el usuario pronuncia el nombre del cliente: Bezyakin, varía la pronunciación, la velocidad de la pronunciación, enfatiza el estrés, pero no se reconoce el nombre deseado.
Así que aquí está la conocida frase del lingüista Sherba "Una profunda cuzra shteko budlanula boraka y un pequeño niño de cabello rizado" convertido en una bayoneta de Bulanova y una lata de fumar.
Para que las palabras que necesita que son desconocidas para el modelo de lenguaje se reconozcan correctamente, debe utilizar la adaptación del modelo de reconocimiento a sus necesidades. Si escribe textos, por ejemplo, en bioinformática, entonces es mejor tomar textos sobre bioinformática y volver a entrenar el sistema en ellos.
Al volver a entrenar a partir de nuevos textos, se construye un modelo de lenguaje pequeño, que participará en el reconocimiento junto con el modelo principal. Es decir, ahora el peso que obtenemos del modelo de lenguaje consistirá en dos pesos: el peso del modelo de idioma principal y el peso del modelo de adaptación.
Adaptar el sistema por textos es mucho más correcto que agregar palabras separadas al diccionario de reconocimiento. Agregar una sola palabra no nos da información sobre cómo se usa esta palabra, cómo se inclina, etc., por lo tanto, es posible que haya errores al reconocer las terminaciones.

Consejo: adapte el reconocimiento a su tema en sus textos o agregue las palabras necesarias al diccionario de reconocimiento.


PD: Este texto fue grabado en voz usando la aplicación #Voco . Y puedes ver cómo sucedió esto en el video:


Literatura para Geeks:
1. : Mohri, M., Pereira, F., & Riley, M. Speech recognition with weighted finite-state transducers. In Springer Handbook of Speech Processing (pp. 559-584). Springer Berlin Heidelberg 2008.
2. www.morganclaypool.com/doi/abs/10.2200/S00462ED1V01Y201212SAP010
3. , www.amazon.com/Automatic-Speech-Recognition-Communication-Technology/dp/1447157788/ref=sr_1_1?s=books&ie=UTF8&qid=1447854516&sr=1-1&keywords=speech+recognition

Source: https://habr.com/ru/post/es388151/


All Articles