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.