C/C++ srvOuve
Reconhecimento de Voz ONLINE no srvOuve
Reconhecimento de voz usando o srvOuve, permite ouvir o que se diz.

O srvOuve, é um projeto de minha autoria, que permite criar aplicação de Voz para Texto. Neste projeto, iremos utilizar várias abordagens diferentes, para criar uma aplicação para atender essa finalidade.

Neste primeiro projeto finalizado, criamos um serviço de voz para texto que precisa ser online.

GITHUB

https://github.com/marcelomaurin/srvOuve

Vantagem

O projeto srvOuve, permite utilizar diversos serviços diferentes, ouvindo tanto online como offline, unificando assim a forma de obter esses serviços em um único canal.

Permitindo criar integrações mais ageis.

No exemplo do vídeo usamos o MNote como ferramenta de integração. Onde ele recebe o texto “escutado” pelo srvOuve e repassa ao CHATGPT, permitindo assim que esse responda, e depois convertendo em texto de voz, através do srvFalar, outro projeto de minha autoria.

cmusphinx IA Python Reconhecimento de Voz robotinics srvOuve
Reconhecimento de voz – primeiros passos

Iremos falar do processo de instalação do SpeechRecognition.

https://pypi.org/project/SpeechRecognition/

Que permite reconhecer voz e converter para texto, utilizando o google e outros métodos como o CMU Speech.

Instalação no ubuntu:

sudo apt-get install -y portaudio19-dev

sudo apt-get install python3-pyaudio

# pip3 install pyaudio #pode ser usado esse tambem

pip3 install SpeechRecognition

Irei abordar todos estes processos em outros artigos.

Porem neste vamos preparar o ambiente para o uso em python.

Por enquanto é só.

Nos próximos artigos, irei mostrar um pouco mais dos fontes e projetos adjacentes.

cmusphinx IA Programação srvOuve
Sphinx reconhecimento de audio gravado

Para este experimento iremos utilizar o seguinte texto:

https://www.nasa.gov/mp3/586447main_JFKwechoosemoonspeech.mp3

Trata-se do famoso discurso de J.F. Kenedy, sobre a necessidade de ir a lua.

A transcrição do audio, pode ser vista neste link.

JFK RICE MOON SPEECH (nasa.gov)

Preparação do Arquivo

Primeiramente precisamos converter o texto em wav.

ffmpeg -i 586447main_JFKwechoosemoonspeech.mp3 -ar 16000 -ac -1 jfk.wav

o ffmpeg, faz a conversão do texto no formato desejado para analise. O arquivo é preparado para uma taxa de amostragem de 16k.

Lendo o arquivo

pocketsphinx_continuous -infile jfk.wav > jfk.txt

Segue o que ele ouviu

i got an r n n n
not because they are easy one because they are hot
the car and gold
wilson to organize then it then asked
our energy density else
we got it at our ideas and won that we’re willing to exactly
while we are unwilling to postpone
and one nintendo wii in and then look

Podemos perceber que neste primeiro processo ele ouviu muita coisa errada, porem algumas palavras de cara deram certo. “not because they are easy”. Porem a qualidade do audio comprometeu em muito a leitura.

O parametro -infile, permite ler o arquivo origem, porem o mesmo precisa ser previamente preparado para leitura deste.

Pudemos verificar que a qualidade do audio foi importante para refletir a acuracia do audio, iremos pegar algo mais simples agora.

Segundo exemplo

Neste segundo exemplo extraímos o audio do seguinte link:

https://freesound.org/people/tim.kahn/sounds/82986/

Neste link temos uma contagem regressiva, bem pronunciada de uma voz feminina.

Iremos baixar o wav e passar um filtro conforme a sintaxe abaixo:

ffmpeg -i 82986__tim-kahn__countdown.wav -ar 16000 -ac 1 countdown.wav

Agora iremos processar o arquivo, jogando o resultado no arquivo countdown.txt

pocketsphinx_continuous -infile 82986__tim-kahn__countdown.wav > countdown.txt

Temos como conteudo, o seguinte texto:

ten
nine
eight seven
six five four three two
wind
zero

Podemos perceber que de 10 itens falados, apenas o one, não foi ouvido corretamente.

Referencias:

https://freesound.org/browse/tags/english/

Blog cmusphinx IA Reconhecimento de Voz srvOuve
CMU Sphinx

Temos visto uma crescente de IoT desenvolvidos especificamente para reconhecer comandos de seu dono, tais dispositivos, como Alexa ou o Google Home, tem se tornado, bem popular.

Iremos neste artigo, aprender a criar nosso próprio google home.

O que é o CMU Sphinx

CMU Sphinx é uma api de reconhecimento de voz. Ela é bastante consagrada, possuindo muitos projetos atrelados a ela.

Trato a biblioteca com bastante foco para desenvolvimento IoT, no meu livro que pode ser baixado livremente.

A grande vantagem desta api, é que ela não necessita de conexão externa ou acesso a internet.

Uso do CMU Sphinx

Utilizaremos o CMU Sphinx como base do nosso projeto.

GIT do Projeto

cmusphinx · GitHub

Site do Projeto

CMUSphinx Documentation – CMUSphinx Open Source Speech Recognition

Divisão por Projetos

O CMU Sphinx, possui diversos softwares ou pacotes separados.

Irei abordar alguns deles, que serão algo deste artigo.

  • sphixbase – Biblioteca base
  • pocketsphinx – Conjunto de fontes e dicionário para reconhecimento de vóz usado no sphinxbase.
  • sphinxtrain – Ferramenta de Traino de modelos acústicos
  • Modelo em portguês

Instalação do Sphinx

Pré requisitos de instalação

Para atender a instalação será necessário as seguintes bibliotecas:

apt install bison

apt install libasound2-dev

apt install swig

apt install python

Pré requisitos de instalação

Instalação do Sphinx pelo gerenciador de pacotes

A instalação do sphinx pelo gerenciador de pacote, fica bem mais fácil, porem pode ser necessário, atualizar manualmente a versão, pois ninguem garante que o repositório estará atualizado com a ultima versão.

apt install shinxbase*

apt install pocketsphinx*

instalação através do gerenciador de pacotes

Baixa manual

Nesta modalidade iremos baixar e instalar o sphinx manualmente em nosso linux.

Primeiramente iremos baixar o projeto no git

git clone https://github.com/cmusphinx/sphinxbase.git

Baixando o projeto do repositório

digite agora o autogen para gerar os arquivos de configuração.

./autogen.sh

execução do autogen.sh

Agora, rode o /configure, conforme a linha a seguir:

./configure –enable-fixed

Em seguida compile o projeto:

make clean all

make

make install

Ao fim do processo, voce terá instalado a base.

Instalando o Pocket Sphinx

Bom fizemos a instalação do Sphinxbase, mas iremos agora, adicionar o pacote, necessário para desenvolvimento desktop.

A instalação tradicional já foi passada na instalação do sphinxbase, por isso iremos omitir.

Iremos agora orientar na compilação dos fontes.

Baixe os fontes do repositório:

git clone https://github.com/cmusphinx/pocketsphinx.git

Em seguida entre na pasta e realize os seguintes comandos:

./autogen.sh

./configure

make check

make install

make installcheck

ldconfig

Ao fim do projeto, se der certo, irá aparecer o seguinte binário.

> pocketsphinx_continuous

Ao tentar rodar, ele irá pedir parametros, vamos testar agora com parametros adicionais.

pocketsphinx_continuous -adcdev plughw:1,0 -kws_threshold 1e-20 -inmic yes

Neste modo ele irá ouvir comandos em inglês, fale um simples hello, que voce irá verificar que o mesmo funciona.

Teste de hello

Bom, finalizamos este primeiro artigo, no próximo, iremos criar uma aplicação que ouve as pessoas. Sendo nosso hello world em C.

Espero que tenham gostado.

Reconhecimento de voz com sphinx

Blog srvOuve
srvOuve

Dei o primeiro passo no desenvolvimento do projeto srvOuve.

O intuito deste projeto, é fornecer uma ferramenta de reconhecimento de fala. Convertendo Fala para texto, este projeto é 100% offline, não necessitando de nenhuma API na nuvem.

O projeto srvOuve é uma integração com o Sphinx, projeto de reconhecimento de voz.

Permite através de uma porta tcp, escutar tudo o que é ouvido, em forma de texto.

O intuito deste projeto é facilitar o desenvolvimento em etapas de aprendizado de maquina.

Obtendo uma forma simples e eficiente de integrar esta feature.

O que é o CMU Sphinx

CMU Sphinx é uma api de reconhecimento de voz. Ela é bastante consagrada, possuindo muitos projetos atrelados a ela.

A grande vantagem desta api, é que ela não necessita de conexão externa ou acesso a internet.

Uso do CMU Sphinx

Utilizaremos o CMU Sphinx como base do nosso projeto.

Instalação do Shinx

Artigos relacionados

    CMU Sphinx – Maurinsoft

    maurinsoft.com.br