Página 1 de 1
reconhecimento de voz

Enviado:
18 Fev 2011 00:35
por jorgeluiz
Ja faz algum tempo que venho estudando a possibilidade de um pic reconhecer pelo menos duas palavras. Acho que agora achei um caminho:
Primeiro de tudo, fazer um amplificador que entregue um sinal "clipado", isto e', saturado, onde a grandeza que varia seria, unica e exclusivamente a frequencia, pois se for analisar frequencia e intensidade, vai ficar muito complexo. Achei um esquema com o LM 386, com um ganho absurdo de mais e 50 db, com enfase entre 500 e 5 Khz, onde situa-se geralmente a voz humana. Agora e' analisar os resultados nessas frequencias.

Enviado:
18 Fev 2011 07:54
por proex
Vc ta indo pelo caminho errado. Saturação de sinal de áudio gera harmônicos e outros problemas.
O método mais simples, dentre tantos complicados, é retificar o sinal de áudio pra conseguir o Envelope da palavra e depois compara-lo com os Envelopes memorizados na flash.
Esse é o único método confiável possível para micro-controladores desse porte.
Confiável até certo ponto mas mesmo assim, o índice de acertos é muito grande.
Quem trabalha com síntese sonora sabe o que é Envelope.
.

Enviado:
18 Fev 2011 08:56
por Guri
E aí, caro proex, tudo bem com você!
Como o colega proex disse, envelope é a envolvente do sinal de audio em amplitude ou seja o ADSR, Atack, Decay, Sustain e Release.
Eu numca tinha pensado na hipótese de identificar um sinal com conteúdo timbral complexo através do envelope, achei muito boa a idéia, pelo menos pelo lado teórico normalmente o timbre gerado teria uma envolvente diferente (isso se comparando a um sinal original do mundo real).

Enviado:
18 Fev 2011 15:43
por andre_luis
Não sei se é o que voce precisa, mas segue uma referencia de um trabalho dum camarada que conheço :
http://teses.ufrj.br/COPPE_M/RafaelTeruszkinTevah.pdf
+++

Enviado:
19 Fev 2011 00:06
por jorgeluiz
Interessante esse material Andre. Baixei e vou dar uma estudada.
.
E o que seria esse "Envelope da palavra " Proex?
.
Eu pensei nesse metodo da clipagem do som, baseado em alguns projetos, onde o som passa por compressao, e depois analisado por diversos filtros,. De fato, numa analise no osciloscopio, o som de uma palavra e' uma zorra de frequencias e harmonicas, que e' dificil determinar qual a predominante e quais as secundarias. Sem falar que tem silabas como PA, BA, TA, DA, que olhando o espectro sao praticamente iguais.

Enviado:
19 Fev 2011 07:31
por proex
Muito bom esse material, mas isso é trabalho para processadores mais potentes. Com PIC, que é o caso do amigo aqui, não há chance disso ser implementado.
Para conseguir o envelope da palavra, basta retificar o sinal de audio.
Esse meu processo é para reconhecer comandos simples atraves da voz.
Com ele nao possivel identificar o locutor, apenas a palavra que esta sendo falada.
Sim, haverá uma margem de erro, mais alta que em processos mais sofisticados mas é muito eficiente e não enviabiliza a ideia.
Como em todo sistema de comando por voz, vc terá restricões com fonias parecidas.
Batatinha, Patotinha, Baitolinha....coisas assim devem ser evitadas.
Claro que ninguem usaria palavras assim para criar comandos por voz.

Enviado:
26 Fev 2011 16:52
por jorgeluiz
Proex:
"Para conseguir o envelope da palavra, basta retificar o sinal de audio."
.
Mas meu caro Proex, eu estou usando um LM 386, sem alimentaçao simetrica. O sinal varia de 0 a 4,5 volts, porque eu precisaria retificar o sinal? Esse envelope de palavra leva em consideraçao a intensidade ou a frequencia do sinal?
Fiz o seguinte ate' agora: Tiro amostras a cada 10ms, e faço uma media entrelaçada, i.e. os ultimos 5ms, fazem parte da media do anterior e do proximo sinal. Da' pra ver as frequencias de certas vogais perfeitamente, como "O" fechado "A" aberto, e algumas consoantes. Mas fiquei interessado nesse processo de envelope da palavra.

Enviado:
27 Fev 2011 11:46
por proex
Jorge, toda palavra possui uma formato, um corpo. Esse formato ou corpo é composto por freqüências, amplitudes e impulsos.
Esse formato ou corpo é também conhecido por Envoltório ou Envelope ou seja, tudo que forma uma palavra esta dentro de um Envelope.
Outra coisa, Reconhecimento de voz significa reconhecer um tom de voz especifico em relação a muitos outros. Agora, Comando por voz significa reconhecer um palavra especifica e executar um comando relacionado a ela.
Se o que vc quer fazer é Reconhecimento de voz, esqueça o método que sugeri e esqueça o PIC pois isso necessita de grande poder de processamento.
Para executar comandos por voz, bastam um Basic Stamp, AVR ou PIC
http://www.youtube.com/watch?v=rN-Nn-zrMS0
http://www.youtube.com/watch?v=J4R7iR3cffg
http://www.youtube.com/watch?v=cce08lob0CQ
Isso é feito com pouco processamento, apenas reconhecendo o Envelope da palavra. Esse envelope é conseguido quando retificamos o sinal de audio. (retificação de onda completa com um filtro na saida.)
É um circuito simples, muito usados em V.U para audio, compressores de audio entre outros. Na internet tem muito exemplo desses retificadores.
.

Enviado:
28 Fev 2011 10:14
por Muga

Enviado:
28 Fev 2011 11:42
por Djalma Toledo Rodrigues
proex escreveu: .... É um circuito simples, muito usados em V.U para audio, compressores de audio entre outros. Na internet tem muito exemplo desses retificadores.
.
Detetorde Pico
com pequena
Constante Tempo.
é o suficiente.
DJ