Construindo um reconhecimento de fala e uma ferramenta de conversão de fala em texto

Creación de una herramienta de reconocimiento de voz y conversión de voz a texto

Imagem em destaque

En 2010, estaba sentado en mi habitación mirando televisión cuando vi un comercial de Xbox. Se lanzó Kinect, una línea de dispositivos sensores de movimiento de Microsoft y, con él, una nueva forma de jugar. Me fascinaron las características de esta nueva tecnología y se me ocurrió una idea : ¿Y si aprovechamos las funciones de Kinect fuera de la consola?

Había tantas opciones y mucho que crear. Kinect se ha conectado a robots para realizar cirugías médicas o entregar paquetes en el campo de batalla. Kinect podría integrarse en tu hogar para convertirse en lo que ahora llamamos “inteligente”. También podría integrarse con hardware para utilizar comandos de voz, de modo que personas con discapacidad puedan trabajar con ordenadores y conseguir un trabajo que requiera el uso de manipulación específica de máquinas, o incluso prescindir del uso de un teclado. Me vinieron a la mente tantas fotos como si estuviera viendo una película futurista. Estas realidades se harían realidad más adelante, y probablemente las personas que lean este artículo ya tengan una Alexa en casa o incluso utilicen la Realidad Aumentada en sus móviles. Es posible que también hayas utilizado el reconocimiento de imágenes para simplificar tus tareas diarias. Bueno, estos conceptos e ideas los logré materializar con Kinect.

El proceso

Tengo un proceso de pensamiento de diseño metódico que es personal y funciona para mí, que he dividido en cuatro pasos. Me gusta trabajar así porque me permite imaginar y considerar todos los escenarios antes de comenzar, así puedo establecer objetivos sin restricciones. Ahora mismo mi imaginación es el límite.

Luego me tomo el tiempo para leer e investigar tanto como sea posible para que las implicaciones de mis ideas queden claras en términos de costo, alcance, tiempo y esfuerzo. Al final, tal como lo hacemos cuando usamos Scrum Framework para determinar un MVP, puedo definir mi Producto Mínimo Viable con este proceso. Después de eso, puedo empezar a fabricar el MVP; No trabajaré con ideas vagas hasta entonces.

Una vez que el MVP esté terminado, puedo agregarle más funciones. Siempre tengo presente la necesidad de establecer objetivos claros y alcanzables a corto plazo.

1. Pasantía de ensueño

Cuando algo me llama la atención, no sale de mi mente. Decidí hacer realidad mis ideas. Pero ¿qué necesitaba para materializar una idea con un desafío tan grande? En 2010, la tecnología era muy nueva; por lo tanto, la empresa no podría entregar un SDK (kit de desarrollo de software) a los desarrolladores en el corto plazo. En ese momento, cómo funciona una nueva tecnología es desconocido excepto para los ingenieros que la crearon; No se encuentran disponibles manuales ni otras fuentes de información.

Esto me llevó a crear cosas desde cero y confiar en mi proceso personal que sigo habitualmente antes de empezar algo como esto. Normalmente me lleva unos días o una semana organizar mis pensamientos, pero no tomo notas. Simplemente deambulo de una idea a otra, tratando de imaginar tantos escenarios como sea posible para determinar qué necesito y qué podría salir mal.

2. Etapa de investigación

Microsoft no lanzó ningún SDK para manejar Kinect en ese momento, así que me sumergí profundamente en la web para encontrar algunas personas que ya habían desensamblado el hardware para obtener las DLL (bibliotecas de enlaces dinámicos) que hacen que suceda la magia. Finalmente los encontré en un foro ruso. Los siguientes pasos fueron relativamente fáciles a partir de ese momento. Una vez que tenga las bibliotecas con las que trabajar, sólo es cuestión de leer su contenido. Mientras estaba en eso, compré tres sensores Kinect para desmontarlos y comprender sus capacidades de hardware.

3. Etapa de creación

En este punto, tenía todo lo que necesitaba para empezar. Esta es mi parte favorita porque simplemente te sumerges profundamente en ella. Comenzarás una relación a largo plazo con él. Este es el momento en el que te conviertes en un creador. Estaba codificando cuando me di cuenta de que las DLL simplemente interactuaban con el hardware, pero al código le faltaba algo más que hacía que Kinect escuchara y entendiera al usuario. En ese momento, descubrí que probablemente podría usar el diccionario que viene con Windows para traducir palabras habladas a texto, y así mi proyecto comenzó a entenderme mientras hablo.

Este paso fue necesario porque la DLL de Kinect solo contenía las funciones para percibir audio. Fue imposible determinar si el hablante hablaba en inglés u otro idioma, ni identificar las palabras pronunciadas. Al agregar un diccionario de Windows, tal como lo hacemos con nuestra computadora, puedes indicarle al sistema que defina el idioma con el que trabajar. Lo más importante es que también proporciona un conjunto de palabras para comparar con el audio recibido. Así, mi proyecto empezó a “comprenderme” mientras hablo.

Integré varios software y hardware de terceros utilizando sensores Kinect y sus bibliotecas. Por ejemplo, hice posible navegar por cualquier programa que no sea de Windows o escribir dentro de cuadros de texto para completar un formulario sin usar el mouse o el teclado. En el caso de Microsoft Word, podía navegar y controlar el puntero del cursor agitando las manos sin tocar el mouse y escribiendo en la hoja dictando oralmente sin usar ningún teclado. Podría hacer un auto eléctrico Lego y moverlo sin interacción física, simplemente moviendo mis manos frente a los sensores de la cámara para indicarle en qué dirección debe ir. Entonces el sueño finalmente terminó.

4. Etapa de perfección

Finalmente, es hora de mejorar mi proyecto agregando algunas características. Al analizar el hardware de Kinect, descubrí que había una rama de la ingeniería que desconocía. Funcionó con imágenes y se llamó análisis de imágenes digitales.

Descubrí que podíamos utilizar dos tipos de cámaras Kinect para detectar la profundidad del cuerpo e incluso de la mano. Te permite detectar la proximidad del sensor para que puedas jugar con más variables que los ejes x, y y z, y también detectará gestos faciales y posiciones de las manos para interactuar e integrarlos en múltiples sistemas de diferentes maneras. .

Poco después, pude realizar un análisis de sentimientos básico sin entrenamiento de IA, centrándome en los gestos faciales. Por supuesto, parece bastante sencillo si comparamos mi análisis de los sentimientos de entonces con el contexto actual. Hoy contamos con una especialización en Inteligencia Artificial dedicada exclusivamente a mejorar y actualizar algoritmos de análisis de sentimiento. En cuanto a otras funciones, pude controlar exitosamente el mouse, abrir y cerrar aplicaciones, dictado y escritura automática con Microsoft Word.

Conclusión

Hoy contamos con sensores más pequeños con los que trabajar y que nos permiten realizar las mismas integraciones que yo hice hace casi una década. Algo que me sorprende cada vez que recuerdo este momento de mi vida es que, a pesar de haber pasado tantos años, la tecnología sigue funcionando de la misma manera. Los sensores se han vuelto más pequeños y las actualizaciones de hardware han mejorado la calidad de la detección de estímulos ambientales, pero la lógica y los algoritmos de backend siguen siendo los mismos.

Y para las personas dispuestas a hacer algo que ahora mismo parece inalcanzable, recomiendo seguir mi camino. Deja volar tu imaginación y encontrarás al menos una idea viable. Comience su viaje y una vez que obtenga su MVP, eche otro vistazo a las ideas aparentemente inviables. Probablemente puedas materializarlos ahora.

Más publicaciones de blog de nuestros BDevers.

Conteúdo Relacionado

O Rails 8 está pronto para redefinir o Desenvolvimento Web
O Rails 8 sempre foi um divisor de águas...
Como os trabalhadores da Silver aproveitam o GenAI para qualificação
A GenAI está transformando a força de trabalho com...
Testes Unitários: Definição, Tipos e Melhores Práticas
Entenda o papel fundamental dos testes unitários na validação...
Teste de carga: definição, ferramentas e melhores práticas
Aprenda como os testes de carga garantem que seu...
Comparação entre testes positivos e negativos: estratégias e métodos
Aprofunde-se nas funções complementares dos testes positivos e negativos...
Deepfakes de IA: uma ameaça à autenticação biométrica facial
Vídeos deep fake ao vivo cada vez mais sofisticados...
O que é teste de estresse? Levando o teste de software ao seu limite
Entenda a metodologia por trás dos testes de estresse...
Testes Ad Hoc: Adotando a espontaneidade no controle de qualidade
Descubra a imprevisibilidade dos testes ad hoc e seu...
Nacho De Marco agora é membro do Fast Company Impact Council
A nomeação de Nacho De Marco para o Fast...
Desenvolvimento de produtos orientado por IA: da ideação à prototipagem
Aprenda como os processos baseados em IA aprimoram o...
Modernização da Plataforma de Dados: Superando Desafios e Impulsionando a Inovação
A maioria das organizações enfrenta desafios ao se adaptar...
Desbloqueando o Poder da Plataforma MuleSoft AnyPoint: Uma Jornada para a Inovação Empresarial
A era digital trouxe consigo uma transformação sem precedentes...
Superando os desafios do Gerenciamento de Artefatos de Software: Inovação Ágil
À medida que os pipelines de software evoluem, também...
Ascensão da Infraestrutura como Código: Impulsionando a Inovação e a Eficiência
A Infraestrutura como Código (IaC) se tornou o padrão...
Mapa de competências de pesquisa de CX/UX: Simplificando a descoberta e acelerando a inovação
Como pesquisadores líderes de CX/UX, Elena Svergunenko, Anna Pilyutik...
Desenvolvedores de software enfrentam pressão crescente para equilibrar inovação e segurança
Os desenvolvedores e engenheiros de software embarcado em todo...
Houdini CSS: A Revolução na Estilização Web
A web está em constante evolução, e com ela,...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.