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.Para os recursos com suporte a TLS estão disponíveis o parâmetro ssl_certificate_path para indicar o caminho da pasta que comtém os certificados.
Os plugins para uso nos ambientes em nuvem é necessário 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.
Parâmetros de configuração das engines¶
Engine TTS¶
<plugin-factory>
<engine id="CPqD-TTS" name="cpqd_mrcp_tts" enable="true">
<param name="tts_server_ip" value="$TTS_SERVER_IP"/>
<param name="tts_server_port" value="$TTS_SERVER_PORT"/>
<param name="tts_timeout_net" value="20"/>
<param name="sl_url" value="$MRCP_SL_URL"/>
<param name="tts_server_ssl" value="$MRCP_TLS_ENABLE"/>
<param name="ssl_certificate_path" value="$SSL_CERT_PATH"/>
<param name="token_user_id" value="user"/>
<param name="token_password" value="password"/>
<param name="tts_encoder_8k" value="$MRCP_ENCODER_8k"/>
<param name="tts_default_voice_name" value="$TTS_VOICE"/>
</engine>
</plugin-factory>
Parâmetros obrigatórios:
tts_server_ip: IP ou URL do servidor TTS
tts_server_port: Porta do servidor TTS
tts_timeout_net: timeout para respostas de rede em ms (padrão 10s)
Parâmetros para conexão a servidores com segurança em nuvem:
sl_url: URL do servidor do servidor de licença para obtenção do token
token_user_id: user id para obtenção de token
token_password: senha par obtenção do token
tts_server_ssl: indica se a conexão gRPC utiliza TSL
ssl_certificate_path: caminho para a chave do certificado para conexão gRPC com TLS
Outros parâmetros:
tts_encoder_8k: encoder 8k padrão que será procurado caso o encoder caso o encoder “pcm/8000/16/1” não seja encontrada na lista do servidor
tts_encoder_16k: encoder 16k padrão que será procurado caso o encoder caso o encoder “pcm/16000/16/1” não seja encontrada na lista do servidor
tts_default_voice_name: quando definida será a voz padrão utilizada caso nenhuma voz esteja presente na requisição de síntese, caso contrário irá usar como padrão a primeira voz da lista de vozes retornada pelo servidor
tts_default_ptbr_male_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz masculina no idioma português
tts_default_ptbr_female_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz feminina no idioma português
tts_default_ptbr_neutral_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz neutra no idioma português
tts_default_es_male_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz masculina no idioma espanhol
tts_default_es_female_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz feminina no idioma português
tts_default_es_neutral_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz neutra no idioma espanhol
tts_default_en_male_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz masculina no idioma inglês
tts_default_en_female_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz feminina no idioma inglês
tts_default_en_neutral_voice_name: é a voz utilizada quando requisição MRCP solicita uma voz neutra no idioma inglês
language_name_ptbr: é a grafia do idioma português na requisição MRCP (valor padrão: pt-BR)
language_name_es: é a grafia do idioma espanhol na requisição MRCP (valor padrão: es-ES)
language_name_en: é a grafia do idioma inglês na requisição MRCP (valor padrão: en-EU)
Nota
É possível flexibilizar o nome dos idiomas, acima 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.
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 configurados na engine de síntese de fala:
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.
Engine ASR¶
<plugin-factory> <engine id="CPqD-ASR" name="cpqd_mrcp_asr" enable="true"> <param name="cpqd_asr_server" value="http://SERVER_IP:PORT"/> <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="https://CPQD_SL_IP:CPQD_SL_PORT"/> <param name="token_user_id" value="user"/--> <param name="token_password" value="password"/> <param name="ssl_certificate_path" value="$SSL_CERT_PATH"/> <param name="grpc_metadata" value="x-asr-grpc:general"/> </engine> </plugin-factory>
Parâmetros Obrigatórios:
cpqd_asr_server: URL de conexão ao servidor ASR, quando o servidor é conectado com segurança a URL será inciada por https, caso contrário será http.
timeout_net_sec: timeout de conexão de rede valor padrão (10s)
Parâmetros para conexão a servidores com segurança em nuvem:
sl_url: URL do servidor do servidor de licença para obtenção do token
token_user_id: user id para obtenção de token
token_password: senha par obtenção do token
ssl_certificate_path: caminho para a chave do certificado para conexão gRPC com segurança
grpc_metadata: Utilizado na instalação para uso do ambiente Saas do ASR, com o objetivo de diferenciar os modelos de língua general e call center respectivamento. Valores permitidos: «x-asr-grpc:general» ou «x-asr-grpc:call»
Outros parâmetros:
ivr_vendor: vendor para formatação do XML de resposta, existe customização apenas para o vendor CISCO e GENERIC.
Engine VER¶
<plugin-factory> <engine id="CPqD-VER" name="cpqd_mrcp_ver" enable="true"> <param name="cpqd_ver_server" value="http://0.0.0.0:9293/"/> <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="https://CPQD_SL_IP:CPQD_SL_PORT"/> <param name="token_user_id" value="TOKEN_VER_USER_ID"/> <param name="token_password" value="TOKEN_VER_PASSWORD"/> <param name="verification_scenario" value="mrcp@sr8khz"/> </engine> </plugin-factory>
Parâmetros Obrigatórios:
cpqd_asr_server: URL de conexão ao servidor ASR, quando o servidor é conectado com segurança a URL será inciada por https, caso contrário será http.
timeout_net_sec: timeout de conexão de rede valor padrão (10s)
verification_scenario: Nome do cenário de verificação a ser usado por padrão se o cliente não enviou na requisição
Parâmetros para conexão a servidores com segurança em nuvem:
sl_url: URL do servidor do servidor de licença para obtenção do token
token_user_id: user id para obtenção de token
token_password: senha par obtenção do token
ssl_certificate_path: caminho para a chave do certificado para conexão gRPC com segurança
Outros parâmetros:
ivr_vendor: vendor para formatação do XML de resposta, existe customização apenas para o vendor CISCO e GENERIC.
Nota
Novidades
Suporte a variáveis de ambiente nas configurações de engines
O valor de cada parâmetro das engines pode ser substituído pelo valor da variável de ambiente cujo nome está precedido por $. Assim para a configuração abaixo a URL do servidor TTS será o valor da variável de ambiente TTS_SERVER_IP.: <param name="tts_server_ip" value="$TTS_SERVER_IP"/>
Load balance gRPC
É possível realizar uma configuração de load balance conforme descrito em gRPC Load Balancing
O seguinte parâmetro está disponível nas engines para configuração do load balance:
grpc_load_balance: tipo de load balance pick_first ou round_robin. O valor padrão é o round_robin.
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.