reconhecimento de voz

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

reconhecimento de voz

Mensagempor jorgeluiz » 18 Fev 2011 00:35

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.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor proex » 18 Fev 2011 07:54

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.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor Guri » 18 Fev 2011 08:56

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).
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Mensagempor andre_luis » 18 Fev 2011 15:43

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

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor jorgeluiz » 19 Fev 2011 00:06

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.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor proex » 19 Fev 2011 07:31

andre_teprom escreveu: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

+++


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.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor jorgeluiz » 26 Fev 2011 16:52

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.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor proex » 27 Fev 2011 11:46

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.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor Muga » 28 Fev 2011 10:14

esses dias li um artigo excelente a respeito na circuit cellar
http://www.circuitcellar.com/pastissues/articles/stewart91/text.htm
Muga
Bit
 
Mensagens: 33
Registrado em: 21 Out 2006 09:41
Localização: Guaira - SP

Mensagempor Djalma Toledo Rodrigues » 28 Fev 2011 11:42

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
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x