Validação¶
O Cliente de Validação¶
A ferramenta mrcp-client, instalada juntamente com o Serviço MRCP do CPqD permite realizar testes locais de síntese e reconhecimento de fala para validar a instalação do Serviço MRCP. Os testes são feitos através de uma CLI própria do cliente MRCP.
Cuidado
A ferramenta não valida configurações de Rede e Firewall.
Para iniciar o cliente MRCP, execute o seguinte comando:
$ /opt/cpqd/mrcp/server/bin/mrcp-client
Ao finalizar os testes de validação, o comando para sair do cliente é:
> quit
Validando o plugin de Síntese¶
Com a CLI do cliente aberta, execute os seguintes passos:
Teste de Síntese via MRCP v1¶
> run synth uni1
Espera-se que o evento SPEAK-COMPLETE seja lançado com Completion-Cause = normal:
Session: XXXXXXXXXXXXXXXX Content-Type: application/mrcp Content-Length: 68 SPEAK-COMPLETE 1 COMPLETE MRCP/1.0 Completion-Cause: 000 normal
Espera-se que um áudio seja gerado em:
$ /opt/cpqd/mrcp/server/var/synth-8kHz-XXXXXXXXXXXXXXXX.pcm
Teste de Síntese via MRCP v2¶
> run synth uni2
Espera-se que o evento SPEAK-COMPLETE seja lançado com Completion-Cause = normal:
MRCP/2.0 122 SPEAK-COMPLETE 1 COMPLETE Channel-Identifier: YYYYYYYYYYYYYYYY@speechsynth Completion-Cause: 000 normal
Espera-se que um áudio seja gerado em:
/opt/cpqd/mrcp/server/var/synth-8kHz-YYYYYYYYYYYYYYYY.pcm
Reprodução dos áudios dos testes de Síntese¶
Passo a passo para reproduzir os áudios criados nos testes de síntese, via Terminal no Linux.
Copie os arquivos para uma máquina Linux local que tenha caixas de som ou fones de ouvido conectado.
Então, instale o programa sox, caso não possua:
$ sudo yum install sox
Agora, é possível reproduzir os áudios via Terminal:
play -t raw -r 8000 -c 1 -b 16 -e signed-integer synth-8kHz-XXXXXXXXXXXXXXXX.pcm
Dica
Passo a passo para reproduzir os áudios criados nos testes de síntese, via Audacity.
Audacity é um software gratuito de manuseio de áudio disponível para Windows e Linux.
Abra o Audacity e execute os passos:
- Clicar em: Ficheiro->Importar->Dados Raw… (em inglês: File->Import->Raw Data…)
- Selecionar o arquivo: Localização/synth-8kHz-XXXXXXXXXXXXXXXX.pcm
- Selecionar as opções na sequência - Codificação = Signed 16 bit PCM - Sem endianness - 1 canal - 0 bytes - 100 % - 8000 Hz
- Para escutar, pressionar a tecla «ESPAÇO» ou clicar «Play»
Validando o plugin de Reconhecimento¶
Com a CLI do cliente aberta, execute os seguintes passos:
Teste de Reconhecimento via MRCP v1¶
Reconhecimento com gramática
> run recog-grammar uni1
Espera-se que o evento RECOGNITION-COMPLETE seja lançado com Completion-Cause = success e o seguinte XML:
RECOGNITION-COMPLETE 2 COMPLETE MRCP/1.0 Completion-Cause: 000 success Content-Type: application/x-nlsml Content-Length: 240 <?xml version="1.0" encoding="UTF-8"?> <result> <interpretation grammar="session:request1@form-level" confidence="100"> <instance>pizza_vegetariana</instance> <input mode="speech">eu quero uma pizza vegetariana</input> </interpretation> </result>
Reconhecimento com Modelo de Fala Livre. (Somente funcionará se você adquiriu o Modelo de Fala Livre no ASR)
> run recog-slm uni1
Espera-se que o evento RECOGNITION-COMPLETE seja lançado com Completion-Cause = success e o seguinte XML:
RECOGNITION-COMPLETE 2 COMPLETE MRCP/1.0 Completion-Cause: 000 success Content-Type: application/x-nlsml Content-Length: 286 <?xml version="1.0" encoding="UTF-8"?> <result> <interpretation grammar="session:request1@form-level" confidence="99"> <instance>agora ele despenca do teto em direção ao piso</instance> <input mode="speech">agora ele despenca do teto em direção ao piso</input> </interpretation> </result>
Teste de Reconhecimento via MRCP v2¶
Reconhecimento com gramática
> run recog-grammar uni2
Espera-se que o evento RECOGNITION-COMPLETE seja lançado com Completion-Cause = success e o seguinte XML:
MRCP/2.0 426 RECOGNITION-COMPLETE 2 COMPLETE Channel-Identifier: 10fc4272ff8711e7@speechrecog Completion-Cause: 000 success Content-Type: application/x-nlsml Content-Length: 241 <?xml version="1.0" encoding="UTF-8"?> <result> <interpretation grammar="session:request1@form-level" confidence="1.00"> <instance>pizza_vegetariana</instance> <input mode="speech">eu quero uma pizza vegetariana</input> </interpretation> </result>
Reconhecimento com Modelo de Fala Livre. (Somente funcionará se você adquiriu o Modelo de Fala Livre no ASR)
> run recog-slm uni2
Espera-se que o evento RECOGNITION-COMPLETE seja lançado com Completion-Cause = success e o seguinte XML:
MRCP/2.0 473 RECOGNITION-COMPLETE 2 COMPLETE Channel-Identifier: 4021e0c0ff8711e7@speechrecog Completion-Cause: 000 success Content-Type: application/x-nlsml Content-Length: 288 <?xml version="1.0" encoding="UTF-8"?> <result> <interpretation grammar="session:request1@form-level" confidence="0.99"> <instance>agora ele despenca do teto em direção ao piso</instance> <input mode="speech">agora ele despenca do teto em direção ao piso</input> </interpretation> </result>
Dica
Há várias possibilidades de testes, pois é possível fazer várias combinações. O formato de execução dos testes é dado abaixo:
> run <TEST-CASE-NAME> [MRCP-VERSION] ---------------------------------------------------------------------------- De forma que: <TEST-CASE-NAME> (obrigatório): é um dos casos de testes da tabela abaixo. [MRCP-VERSION] (opcional): uni1, para MRCP v1 e uni2, para MRCP v2. O padrão é uni2. Os casos de teste disponíveis são:
¶ Testes do plugin MRCP ASR Testes do plugin MRCP TTS recog-grammar synth recog-slm synth_rosana dtmf synth_carlos synth_all