Configuração do Serviço MRCP¶
Configuração Padrão¶
Os codecs de áudio suportados pelo MRCP do CPQD são:
PCMA (8kHz)
PCMU (8kHz)
O Serviço MRCP possui uma configuração padrão de portas que são usadas de acordo com a versão do protocolo:
MRCPv1
Porta 1554, para RTSP
Portas 5000 a 6000, para o RTP
MRCPv2
Porta 8060, para SIP
Porta 1544, para MRCPv2 Agent
Portas 5000 a 6000, para o RTP
No MRCPv1, além da informar quais portas atenderão os respectivos protocolos, é preciso informar o Resource Path de cada serviço de mídia disponível. Os Resource Paths padrão são:
Resource Path da Síntese: speechsynthesizer
Resource Path do Reconhecimento: speechrecognizer
Parâmetros do Serviço MRCP¶
Aviso
Os arquivos de configuração a serem editados estão em /opt/cpqd/mrcp/server/conf/templates
e /opt/cpqd/mrcp/server/conf/cpqd
.
Após a edição desejada, o script /opt/cpqd/mrcp/server/bin/configure
deve ser executado para que as alterações tenham efeito.
Para alterar o endereço IP do Serviço MRCP, edite o arquivo:
/opt/cpqd/mrcp/server/conf/cpqd/common.xml
Os parâmetros de configuração do Servidor MRCP são ajustados por meio da atribuição de valores a variáveis pré definidas. Qualquer alteração será válido somente após o reinicialização do Servidor.
/opt/cpqd/mrcp/server/conf/templates/unimrcpserver.xml
Para alterar configuração dos perfis, altere os dois arquivos:
/opt/cpqd/mrcp/server/conf/templates/unimrcpserver.xml
e/opt/cpqd/mrcp/server/conf/templates/cpqd.xml
Servidores de Recursos MRCP¶
As engines de recursos MRCP (Síntese de fala, Reconhecimento de voz e Verificação de locutor) são configuradas dentro da plugin-factory do arquivo de configuração do servidor MRCP:
/opt/cpqd/mrcp/server/conf/unimrcpserver.xml
. Cada plugin é identificado pelo nome do plugin: cpqd_mrcp_tts, cpqd_mrcp_asr e cpqd_mrcp_ver. Estas engines apontam para os respectivos servidores de recursos.A engine com recurso de Síntese de fala suporta o protocolo Websocket sem TLS, e os valores de <IP>, <Porta> e <endpoint> são configurados individualmente em cada parâmetro, indicando o servidor de Síntese de fala desta forma.
A configuração da engine com recurso de Reconhecimento de voz e Verificação de locutor suportam o protocolo Websocket com e sem TLS, e os parêmetros <cpqd_asr_server> e <cpqd_ver_server> contém a URL do servidor no formato <protocol://address:port/endpoint_path>, sendo que protocol será «ws» para servidores sem suporte TLS e «wss» para servidores com suporte TLS.
Para os recursos com suporte a TLS estão disponíveis os parâmetros validate_ssl_certificate para indicar se o certificado será validado (default: false) e ssl_certificate_path para indicar o caminho da pasta que comtém os certificados (default: /etc/ssl/certs).
Nas engines com recurso de Reconhecimento de voz e Verificação de locutor para uso nos ambientes em nuvem é possível configurar autenticação por token, para permitir o acesso e bilhetagem no ambiente. Os seguintes parâmetros estão disponíveis: sl_url para configuração da URL do servidor de licensa para obter o token de autenticação, token_user_id e token_password com o usuário e senha para obtenção do token. Cada tipo de recurso possui usuário e senha distinto porque estão vincluladas a licenças com funcionalidade específicas.
Outros parâmetros úteis disponíveis para uso em ambiente de nuvem são: ws_recog_interface_ver e ws_ver_interface_ver que permitem configurar a versão do protocolo de interface Websocket do recurso de Reconhecoimento de voz e Verificação de locutor respectivamente, com os valores padrões v3 e v1.
<plugin-factory> <engine id="TTS" name="cpqd_mrcp_tts" enable="true"> <param name="tts_server_ip" value="192.168.1.1"/> <param name="tts_server_port" value="9090"/> <param name="tts_server_ws" value="ws/v1/synthesize"/> <param name="tts_server_rest" value="rest/v2"/> <param name="tts_timeout_net" value="10"/> <param name="tts_default_ptbr_female_voice_name" value="adriana-highquality.voice"/> <param name="tts_default_en_female_voice_name" value="rose-highquality.voice"/> <param name="language_name_ptbr" value="pt-BR"/> </engine> <engine id="ASR" name="cpqd_mrcp_asr" enable="true"> <param name="cpqd_asr_server" value="wss://SERVER_HOST:PORT/asr/ws/v3/recognize"/> <param name="timeout_net_sec" value="20"/> <param name="ivr_vendor" value="asterisk"/> <param name="validate_ssl_certificate" value="false"/> <param name="sl_url" value="LICENSE_SERVER_URL"/> <param name="token_user_id" value="TOKEN_USER_ID"/> <param name="token_password" value="TOKEN_PASSWORD"/> <param name="timeout_net_sec" value="TIMEOUT_VALUE_IN_SEC"/> </engine> <engine id="VER" name="cpqd_mrcp_ver" enable="true"> <param name="cpqd_ver_server" value="wss://SERVER_HOST:PORT/ws/v1/speakverify/"/> <param name="timeout_net_sec" value="20"/> <param name="ivr_vendor" value="asterisk"/> <param name="validate_ssl_certificate" value="false"/> <param name="sl_url" value="LICENSE_SERVER_URL"/> <param name="token_user_id" value="TOKEN_USER_ID"/> <param name="token_password" value="TOKEN_PASSWORD"/> <param name="timeout_net_sec" value="TIMEOUT_VALUE_IN_SEC"/> </engine> </plugin-factory>
Aviso
A engine TTS suporta apenas o recurso de Síntese de fala, a engine ASR suporta apenas o recurso de Reconhecimento de voz (com e sem classificadores) e a engine VER suporta os recursos de Reconhecimento de voz e Verificação de locutor, podendo ambos serem configurados na mesma plugin-factory do arquivo de configuração.
Aviso
O Suporte para TLS está disponível apenas no plugin de biometria (VER).
Nota
O parâmetro timeout_net_sec permite configurar o tempo máximo de espera de resposta dos serviços de Reconhecimento de voz e Verificação de locutor, que pode ser necessário ajustar para operação em nuvem, seu valor default é 10 segundos.
Nota
Para equipamentos que não enviam o parâmetro Voice-Name nas mensagens de requisição de síntese de fala, é disponiblizado um mapeamento dos parâmetros Voice-Gender e Speech-Language para um valor padrão de voz conforme o gênero e idioma enviados. Se a configuração da voz padrão não for preenchida, nenhum voice-name será enviado ao servidor TTS, caso a mensagem MRCP não contenha essa informação. Os seguintes mapeamentos estão disponibilizados e podem ser configuraados na engine de síntese de fala:
tts_default_ptbr_male_voice_name
tts_default_ptbr_female_voice_name
tts_default_ptbr_neutral_voice_name
tts_default_es_male_voice_name
tts_default_es_female_voice_name
tts_default_es_neutral_voice_name
tts_default_en_male_voice_name
tts_default_en_female_voice_name
tts_default_en_neutral_voice_name
Nota
A solicitação dos parâmetros de gênero e idioma poderá ser feito nas mensagens MRCP de Speak e Set-Parameters. Contudo a consulta via Get-Parameters irá retornar os parâmetros ajustados e a voz padrão enviada ao TTS quando a consulta incluir o parâmetro Voice-Name.
Nota
É possível flexibilizar o nome dos idiomas, abaixo estão os parâmetros utilizados com os valores padrão, que são assumidos caso o usuário não tenha configurado nenhum deles. Se o equipamento enviar outra variante do idioma ou uma sequência diferente de caracteres nas mensagens MRCP, o ajuste poderá ser feito através desses parâmetros na seção engine de síntese de fala no arquivo de configuração.
language_name_ptbr = pt-BR
language_name_es = es-ES
language_name_en = es-EU