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.

  1. Para alterar o endereço IP do Serviço MRCP, edite o arquivo: /opt/cpqd/mrcp/server/conf/cpqd/common.xml

  2. 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

  1. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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.

  6. 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