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

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

Imagem em destaque

Em 2010, eu estava sentado no meu quarto assistindo TV quando vi um comercial do Xbox. Kinect, uma linha de dispositivos com detecção de movimento da Microsoft, foi lançada e, com ela, uma nova forma de jogar. Fiquei fascinado pelas características desta nova tecnologia e uma ideia me veio à mente: E se aproveitarmos os recursos do Kinect fora do console?

Havia tantas opções e muito para criar. Kinect conectou-se a robôs para realizar cirurgias médicas ou entregar pacotes no campo de batalha. O Kinect poderia ser integrado à sua casa para se tornar o que hoje chamamos de “inteligente”. Também poderia integrar-se ao hardware para utilizar comandos de voz, para que pessoas com deficiência pudessem trabalhar com computadores e conseguir um emprego que exija o uso de manipulação específica de máquinas, ou mesmo dispensar o uso de teclado. Tantas fotos me vieram à mente como se eu estivesse assistindo a um filme futurista. Essas realidades se tornariam realidade mais tarde, e provavelmente as pessoas que estão lendo este artigo já tenham uma Alexa em casa ou até usem Realidade Aumentada em seus celulares. Você também pode ter usado o reconhecimento de imagem para simplificar suas tarefas diárias. Pois bem, consegui materializar esses conceitos e ideias com o Kinect.

O processo

Tenho um processo metódico de design thinking que é pessoal e funciona para mim, que dividi em quatro etapas. Gosto de trabalhar assim porque me permite imaginar e considerar todos os cenários antes de começar, para poder traçar metas sem quaisquer restrições. Neste momento minha imaginação é o limite.

Depois, dedico um tempo para ler e investigar o máximo possível, para que as implicações de minhas ideias fiquem claras em termos de custos, escopo, tempo e esforço. No final, assim como fazemos quando usamos o Scrum Framework para determinar um MVP, posso definir meu Produto Mínimo Viável com este processo. Depois disso, posso começar a fabricar o MVP; Não trabalharei com ideias vagas até lá.

Assim que o MVP for concluído, posso adicionar mais recursos a ele. Estou sempre atento à definição de objetivos de curto prazo claros e alcançáveis.

1. Estágio dos Sonhos

Quando algo chama minha atenção, não sai da minha mente. Resolvi concretizar minhas ideias. Mas o que eu precisava para materializar uma ideia com um desafio tão grande? Em 2010, a tecnologia era muito nova; portanto, a empresa não poderia entregar um SDK (kit de desenvolvimento de software) para desenvolvedores tão cedo. Naquele momento, a forma como uma nova tecnologia funciona é desconhecida, exceto para os engenheiros que a criaram; nem manuais nem outras fontes de informação estão disponíveis.

Isso me levou a criar coisas do zero e confiar no meu processo pessoal que sigo regularmente antes de começar algo assim. Normalmente levo alguns dias ou uma semana para organizar meus pensamentos, mas não faço anotações. Eu apenas vagueio de uma ideia para outra, tentando imaginar tantos cenários quanto possível para determinar o que preciso e o que pode dar errado.

2. Etapa de pesquisa

A Microsoft não lançou nenhum SDK para manipular o Kinect naquela época, então mergulhei fundo na web para encontrar algumas pessoas que já haviam desmontado o hardware para obter as DLLs (bibliotecas de vínculo dinâmico) que fazem a mágica acontecer. Finalmente os encontrei em um fórum russo. As etapas seguintes foram relativamente fáceis a partir de então. Depois de ter as bibliotecas para trabalhar, é apenas uma questão de ler seu conteúdo. Enquanto fazia isso, comprei três sensores Kinect para desmontar e entender suas capacidades de hardware.

3. Estágio de Criação

Neste ponto, eu tinha tudo que precisava para começar. Esta é minha parte favorita porque você simplesmente mergulha fundo nela. Você iniciará um relacionamento de longo prazo com ele. Este é o momento em que você se torna um criador. Eu estava codificando quando percebi que as DLLs apenas interagiam com o hardware, mas faltava outra coisa no código que fazia o Kinect ouvir e entender o usuário. Naquela época, descobri que provavelmente poderia usar o dicionário que vem com o Windows para traduzir palavras faladas em texto e, assim, meu projeto começou a me entender enquanto falo.

Esta etapa foi necessária porque a DLL do Kinect continha apenas as funções para perceber o áudio. Foi impossível determinar se o falante estava falando em inglês ou em outro idioma, ou identificar as palavras pronunciadas. Ao adicionar um dicionário do Windows, assim como fazemos com nosso computador, você pode instruir o sistema a definir o idioma com o qual trabalhar. Mais importante ainda, você também fornece um conjunto de palavras para comparar com o áudio recebido. Assim, meu projeto passou a me “compreender” enquanto falo.

Integrei diversos softwares e hardwares de terceiros usando os sensores Kinect e suas bibliotecas. Por exemplo, tornei possível navegar por qualquer programa que não seja Windows ou escrever dentro de caixas de texto para preencher um formulário sem usar o mouse ou o teclado. No caso do Microsoft Word, eu poderia navegar e controlar o ponteiro do cursor agitando as mãos sem tocar no mouse e escrevendo na folha ditando oralmente sem usar nenhum teclado. Eu poderia fazer um carro elétrico Lego e movê-lo sem interação física, apenas movendo minhas mãos na frente dos sensores da câmera para instruir em que direção ele deveria seguir. Então o sonho finalmente acabou.

4. Estágio de Perfeição

Finalmente, chegou a hora de aprimorar meu projeto adicionando alguns recursos. Ao analisar o hardware do Kinect, descobri que havia um ramo da engenharia que eu não conhecia. Trabalhava com imagens e era chamado de análise digital de imagens.

Descobri que poderíamos usar dois tipos de câmeras do Kinect para detectar a profundidade do corpo e até da mão. Ele permite detectar a proximidade do sensor para que você possa brincar com mais variáveis ​​do que os eixos x, y e z, e também detectará gestos faciais e posições das mãos para interagir e integrá-los em vários sistemas de diferentes maneiras. .

Logo depois, pude realizar análises básicas de sentimentos sem treinamento em IA, com foco em gestos faciais. É claro que parece bastante simples se compararmos a minha análise de sentimentos daquela época com o contexto atual. Hoje temos uma especialização em Inteligência Artificial dedicada exclusivamente a melhorar e atualizar algoritmos de análise de sentimento. Em relação a outros recursos, consegui controlar com sucesso o mouse, abrir e fechar aplicativos, ditado e escrita automática com o Microsoft Word.

Conclusão

Hoje temos sensores menores para trabalhar que nos permitem realizar as mesmas integrações que fiz há quase uma década. Algo que me surpreende toda vez que me lembro desse momento da minha vida é que, apesar de tantos anos terem se passado, a tecnologia ainda funciona da mesma maneira. Os sensores tornaram-se menores e as atualizações de hardware melhoraram a qualidade da detecção de estímulos ambientais, mas a lógica e os algoritmos de backend permanecem os mesmos.

E para as pessoas dispostas a fazer algo que parece inatingível neste momento, recomendo seguir o meu caminho. Deixe sua imaginação fluir e você encontrará pelo menos uma ideia viável. Comece sua jornada e, depois de obter seu MVP, dê uma olhada novamente nas ideias aparentemente inviáveis. Você provavelmente é capaz de materializá-los agora.

Mais postagens de blog de nossos BDevers.

Conteúdo Relacionado

Bloga dön

Yorum yapın

Yorumların yayınlanabilmesi için onaylanması gerektiğini lütfen unutmayın.