Como converter fala em texto com Python [processo passo a passo]
Publicados: 2020-08-07Índice
Introdução à fala em texto
Estamos vivendo em uma época em que as formas como interagimos com as máquinas se tornaram variadas e complexas. Evoluímos de botões mecânicos robustos para a interface touchscreen. Mas esta evolução não se limita ao hardware. O status quo para entrada para computadores tem sido texto desde a concepção. Ainda assim, com os avanços em NLP (Natural Language Processing) e ML (Machine Learning), Data Science temos as ferramentas para incorporar a fala como meio de interação com nossos gadgets.
Essas ferramentas já nos cercam e nos servem mais comumente como assistentes virtuais. Google, Siri, Alexa, etc. são conquistas marcantes ao adicionar outra dimensão mais pessoal e conveniente de interagir com o mundo digital.
Ao contrário da maioria das inovações tecnológicas, a tecnologia de fala para texto está disponível para todos explorarem, tanto para consumo quanto para construir seus projetos.
Python é uma das linguagens de programação mais comuns do mundo, possui ferramentas para criar sua fala para aplicativos de texto.
História da fala para texto
Antes de explorarmos a instrução para texto em Python, vale a pena avaliar quanto progresso fizemos nesse campo. A seguir, a linha do tempo simplificada do:
- Audrey ,1952: o primeiro sistema de reconhecimento de fala desenvolvido por 3 pesquisadores do Bells Labs. Só conseguia reconhecer dígitos.
- IBM Showbox (1962): primeiro sistema de reconhecimento de fala da IBM que bobinas reconhecem 16 palavras além de dígitos. Poderia resolver ditados aritméticos simples e imprimir o resultado.
- Agência de Projetos de Pesquisa Avançada de Defesa (DARPA) (1970): DARPA financiou a Pesquisa de Compreensão da Fala, que levou ao desenvolvimento da Harpy para reconhecer 1011 palavras.
- Modelo Oculto de Markov (HMM), década de 1980: HMM é um modelo estatístico que modela problemas que requerem informações sequenciais. Este modelo foi aplicado a novos avanços no reconhecimento de fala.
- Pesquisa por voz do Google ,2001: o Google introduziu o recurso de Pesquisa por voz que permitia aos usuários pesquisar usando a fala. Este foi o primeiro aplicativo habilitado para voz que se tornou muito popular.
- Siri ,2011: A Apple apresentou o Siri que era capaz de realizar uma maneira conveniente e em tempo real de interagir com seus dispositivos.
- Alexa , 2014 e google home , 2016: assistentes virtuais baseados em comandos de voz tornaram-se populares como o google home e o Alexa vende coletivamente mais de 150 milhões de unidades.
Leia também: As 7 principais bibliotecas de PNL Python

Desafios em uma fala para texto
A fala em texto ainda é um problema complexo que está longe de ser um produto realmente acabado. Várias dificuldades técnicas tornam esta ferramenta imperfeita na melhor das hipóteses. A seguir estão os desafios comuns com a tecnologia de reconhecimento de fala:
1. Interpretação imprecisa
O reconhecimento de fala nem sempre interpreta as palavras faladas corretamente. VUIs (Voice User Interface) não são tão adeptos quanto os humanos no contexto de compreensão que alteram a relação entre palavras e frases. As máquinas, portanto, podem lutar para entender a semântica de uma frase.
2. Hora
Às vezes, leva muito tempo para os sistemas de reconhecimento de voz processarem. Isso pode ser devido à diversidade de padrões de voz que os humanos possuem. Essa dificuldade no reconhecimento de voz pode ser evitada diminuindo a velocidade da fala ou sendo mais preciso na pronúncia, o que tira a conveniência da ferramenta.
3. Acentos
VUIs podem achar difícil compreender dialetos que diferem da média. Dentro da mesma língua, os falantes podem ter maneiras muito diferentes de falar as mesmas palavras.
4. Ruído de fundo e volume
Em um mundo ideal, isso não será um problema, mas simplesmente não é o caso e, portanto, as VUIs podem achar difícil trabalhar em ambientes barulhentos (espaços públicos, grandes escritórios, etc.).
Deve ler: Como fazer um chatbot em Python
Fala para texto em Python
Se não quiser passar pelo árduo processo de construir uma declaração para o texto do zero, use o seguinte como guia. Este guia é apenas uma introdução básica para criar seu próprio aplicativo de fala para texto. Certifique-se de ter um microfone funcional além de uma versão relativamente recente do Python.
Etapa 1 :
Baixe os seguintes pacotes python:
- speech_recogntion (pip install SpeechRecogntion): Este é o pacote principal que executa a etapa mais crucial da conversão de fala em texto. Outras alternativas têm prós e contras, como apelo, montagem, pesquisa no google-cloud, pocketsphinx, Watson-developer-cloud, wit, etc.
- Meu áudio (pip instalar Pyaudio)
- Porudio (pip instalar Porudio)
Etapa 2 :
Crie um projeto (nomeie-o como quiser) e importe o speech_recogntion como sr.
Crie quantas instâncias da classe reconhecedora.
Etapa 3 :
Depois de criar essas instâncias, agora temos que definir a origem da entrada.
Por enquanto, vamos definir a fonte como o próprio microfone (você pode usar um arquivo de áudio existente)
Etapa 4 :
Vamos agora definir uma variável para armazenar a entrada. Usamos o método 'ouvir' para obter informações da fonte. Então, no nosso caso, usaremos o microfone como fonte que estabelecemos na linha de código anterior.
Etapa 5 :
Agora que temos o input (microfone como fonte) definido e armazenado em uma variável ('audio'), basta usar o método Recognize_google para convertê-lo em texto. Podemos armazenar o resultado em uma variável ou simplesmente imprimir o resultado. Não precisamos depender apenas do Recognize_google, temos outros métodos que usam APIs diferentes que também funcionam. Exemplos de tais métodos são:

reconhece_bing()
recongize_google_cloud()
recongize_houndify()
recongize_ibm()
reongize_Sphinx() (funciona offline também)
O método a seguir usou pacotes existentes que ajudam a reduzir a necessidade de desenvolver seu software de reconhecimento de fala para texto a partir do zero. Esses pacotes têm mais ferramentas que podem ajudá-lo a construir seus projetos que resolvem problemas mais específicos. Um exemplo de um recurso útil é que você pode alterar o idioma padrão de inglês para hindi. Isso mudará os resultados que são impressos em hindi (embora, como está atualmente, a fala para texto seja mais desenvolvida para entender o inglês).
Mas, é um bom exercício de pensamento de desenvolvedores severos para entender como esse software é executado.
Vamos decompô-lo.
Em sua forma mais fundamental, a fala é simplesmente uma onda sonora. Essas ondas sonoras ou sinais de áudio têm algumas propriedades características (que podem parecer familiares à física da acústica), como amplitude, crista e vale, comprimento de onda, ciclo e frequência.
Esses sinais de áudio são contínuos e, portanto, possuem pontos de dados infinitos. Para converter esse sinal de áudio em um sinal digital, de modo que um computador possa processá-lo, a rede deve obter uma distribuição discreta de amostras que se assemelhe à continuidade de um sinal de áudio.
Uma vez que tenhamos uma frequência de amostragem apropriada (8000 Hz é um bom padrão, pois a maioria das frequências de fala está nessa faixa), podemos agora bibliotecas Python, como LibROSA e SciPy, processar os sinais de áudio. Podemos então construir essas entradas dividindo o conjunto de dados em 2, treinando o modelo e o outro para validar as descobertas do modelo.
Nesta fase, pode-se usar a arquitetura modelo do Conv1d, uma rede neural convolucional que atua em apenas uma dimensão. Podemos então construir um modelo, definir sua função de perda e usar redes neurais para salvar o melhor modelo da conversão de fala em texto. Usando deep learning e NLP (Natural Language Processing), podemos refinar a declaração em texto para aplicações e adoção mais extensas.
Aplicações de reconhecimento de fala
Como aprendemos, as ferramentas para executar essa inovação tecnológica são mais acessíveis porque se trata principalmente de uma inovação de software, e nenhuma empresa a possui. Essa acessibilidade abriu portas para desenvolvedores de recursos limitados criarem sua aplicação dessa tecnologia.

Alguns dos campos em que o reconhecimento de fala está crescendo são os seguintes:
- Evolução nos motores de busca: o reconhecimento de voz ajudará a melhorar a precisão da pesquisa, preenchendo a lacuna entre a comunicação verbal e escrita.
- Impacto no setor de saúde: o reconhecimento de fala está se tornando um recurso comum no setor médico, auxiliando na conclusão de relatórios médicos. À medida que as VUIs se tornam melhores na compreensão do jargão médico, a adoção dessa tecnologia liberará tempo do trabalho administrativo para os médicos.
- Setor de serviços: nas tendências crescentes de automação, pode ser que um cliente não consiga que um humano responda a uma consulta e, portanto, os sistemas de reconhecimento de fala possam preencher essa lacuna. Veremos o rápido crescimento desse recurso em aeroportos, transporte público, etc.
- Provedores de serviços: os provedores de telecomunicações podem contar ainda mais com sistemas baseados em fala para texto que podem reduzir os tempos de espera ajudando a estabelecer as demandas do chamador e direcionando-o para a assistência adequada.
Leia também: Tecnologia de pesquisa por voz - fatos interessantes
Conclusão
A fala para texto é uma tecnologia poderosa que em breve será onipresente. Sua usabilidade razoavelmente direta em conjunto com o Python (uma das linguagens de programação mais populares do mundo) facilita a criação de seus aplicativos. À medida que avançamos neste campo, estamos abrindo caminho para um mundo onde o acesso ao mundo digital não é apenas um dedo, mas também uma palavra falada.
Se você estiver interessado em saber mais sobre processamento de linguagem natural, confira nosso programa Executive PG in Machine Learning and AI, projetado para profissionais que trabalham e mais de 450 horas de treinamento rigoroso.
Se você está curioso para aprender sobre ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1 -on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.
O que é conversão de fala para texto?
Nos primeiros dias do reconhecimento de fala, um transcritor sentava-se com um fone de ouvido e gravava a fala. O processo levou muito tempo e produziu transcrições de baixa qualidade. Hoje, os sistemas de reconhecimento de fala usam computadores para converter fala em texto. Isso é chamado de conversão de fala para texto. O reconhecimento de fala (também conhecido como conversão de fala em texto) é o processo de conversão de palavras faladas em dados legíveis por máquina. O objetivo é permitir que as pessoas se comuniquem com as máquinas por voz e permitir que as máquinas se comuniquem com as pessoas produzindo a fala. O software de fala em texto é usado para realizar essa conversão.
Quais são os desafios na conversão de fala para texto?
Há muitos desafios na conversão de fala para texto. Os principais desafios são: Precisão, onde o sistema precisa acertar as palavras ditas para extrair a intenção do usuário. Velocidade, o sistema precisa ser capaz de executar o acima o suficiente para ser aceitável para o usuário. Naturalidade, o sistema deve soar o mais natural possível, para que o usuário não sinta que precisa falar de maneira não natural. Robustez, o sistema deve ser capaz de lidar com uma grande quantidade de ruídos de fundo, outras falas e quaisquer outros efeitos que possam interferir no processo de conversão.
Quais são as aplicações da fala para o processamento de texto?
A razão pela qual você precisa converter fala em texto é porque é uma maneira muito rápida e conveniente de se comunicar. O processamento de fala para texto pode ser usado em diversas aplicações, por exemplo, pode ser usado em um dispositivo de comunicação móvel, onde o usuário pode usar sua fala para enviar mensagens e fazer chamadas ao invés de digitar no teclado. Outra aplicação da fala ao processamento de texto é o controle de máquina. É uma maneira de controlar um motor ou outra máquina industrial falando com ele.