Conceitos¶
Nessa seção são apresentados os conceitos principais e abreviaturas utilizadas ao longo da documentação.
Abreviaturas¶
- ASR¶
 Automatic Speech Recognition (Reconhecimento Automático de Fala)
- CLI¶
 Command Line Interface (Interface de Linha de Comando)
- dB¶
 Decibéis (unidade logarítmica que indica a proporção entre quantidades de uma mesma grandeza física)
- IETF¶
 Internet Engineering Task Force (Força-tarefa de Engenharia da Internet)
- IP Addr¶
 Endereçamento IPv4 (Internet Protocol versão 4)
- kHz¶
 KiloHertz, unidade de medida que expressa mil ciclos por segundo
- MRCP¶
 Media Resource Control Protocol (Protocolo de Controle de Recursos de Mídia)
- NLSML¶
 Natural Language Semantics Markup Language (Linguagem de Marcação Semântica de Linguagem Natural)
- PCM¶
 Pulse Code Modulation (Modulação de Código de Pulso)
- PCMA¶
 PCM com algoritmo de «compansão» lei-A
- PCMU¶
 PCM com algoritmo de «compansão» lei-u
- RTP¶
 Real-Time Transport Protocol (Protocolo de Transport em Tempo Real)
- RTSP¶
 Real-Time Streaming Protocol (Protocolo de Transmissão em Tempo Real)
- SDP¶
 Session Description Protocol
- SIP¶
 Session Initiation Protocol (Protocolo de Iniciação de Sessão)
- SLM¶
 Statistical Language Model (Modelo de Língua Estatístico)
- SSML¶
 Speech Synthesis Markup Language (Linguagem de Marcação de Síntese de Fala)
- TCP¶
 Transmission Control Protocol (Protocolo de Controle de Transmissão)
- TTS¶
 Síntese de fala, do inglês: Text-To-Speech
- URA¶
 Unidade de Resposta Audível (em inglês, «IVR»: Interactive Voice Response)
- URI¶
 Uniform Resource Identifier (Identificador de Recurso Uniforme)
O protocolo MRCP com gRPC¶
O Servidor MRCP do CPQD segue as especificações das duas versões do MRCP padronizadas pela IETF, a versão 1 e a versão 2.
O Servidor MRCP do CPQD suporta ambas versões do protocolo, e possui integração com nossas soluções de Reconhecimento de Fala, Síntese de Fala e Biometria de Voz.
O MRCPv1 utiliza o protocolo de controle RTSP (Real Time Streaming Protocol) para estabelecer conexões (sessões) nas solicitações síntese e reconhecimento, enquanto o MRCPv2 conta com o protocolo SIP e com SDP para trocar parâmetros associadas a um diálogo. Sendo o SIP, responsável pelo estabelecimento e a interoperabilidade do diálogo.
Para realizar o transporte de áudio nas sessões (Media Session), é designado o protocolo RTP, na taxa de 8KHz (oito kilo hertz), codificação PCMA ou PCMU (8 bits por amostra).
A Biometria de Voz é somente suportada pela versão 2 do protocolo MRCP.
Esta versão MRCP gRPC traz a evolução do Servidor MRCP CPQD com a utilização da tecnologia gRPC (google Remote Procedure Call) representando um avanço significativo na modernização e eficiência dos sistemas de comunicação. Esta transição traz uma série de benefícios que aprimoram desempenho, escalabilidade, interoperabilidade e segurança das aplicações.
Síntese de Fala¶
O Texto Fala é um framework de conversão de texto em fala desenvolvido pelo CPQD. O mesmo é referenciado como TTS em alguns momentos. A Síntese de Fala é uma tecnologia que permite a uma máquina gerar uma onda de áudio com uma fala gerada a partir de um texto.
Para que a síntese seja realizada, é preciso informar ao sintetizador o texto a ser sintetizado. Na solução do CPQD, este texto pode ser das seguintes formas:
- Texto com markup SSML.
 Formato: application/ssml+xml. Exemplo:
<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
        http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
        xml:lang="pt-BR">
        Notícias da <sub alias="Organização das Nações Unidas">ONU</sub>!
</speak>
- Texto puro.
 Formato: text/plain. Exemplo:
Organização das Nações Unidas
Mais informações sobre o nosso TTS, acesse: Texto Fala
Reconhecimento de Fala¶
O Reconhecimento de Fala é um mecanismo de conversão de fala para texto desenvolvido pelo CPQD. O mesmo é referenciado como ASR em alguns momentos.
Para que o reconhecimento seja realizado, é preciso informar ao reconhecedor, além do áudio, o Modelo De Língua que se deseja utilizar. Na solução do CPQD, a indicação do modelo pode ser das seguintes formas:
- Modelo de Fala Livre, SLM.
 Formato: text/uri-list. Exemplo:
builtin:slm/general
- Gramática com interpretação semântica, arquivo fonte ou gramática compilada. Para arquivo fonte, a extensão do arquivo deve ser 
.gram(ABNF) ou.grxml(XML). Formato: text/uri-list. Exemplos:
- Gramática com interpretação semântica, arquivo fonte ou gramática compilada. Para arquivo fonte, a extensão do arquivo deve ser 
 
http://some-host.com/my-grammar.gram
file:///opt/grammars/my-comp-gram/
- Gramática com interpretação semântica. Fonte em formato ANBF.
 Formato: application/srgs. Exemplo:
#ABNF 1.0 UTF-8;
language pt-BR;
tag-format <semantics/1.0-literals>;
mode voice;
// ==================================================
// Sample grammar: pizza.gram
// This is a grammar used to order pizza.
// ==================================================
root $order;
$order = [$want] $pizza [por favor | por gentileza];
$want = [eu] (quero | queria | gostaria de) [uma];
$pizza = [pizza | de | pizza de] $flavor;
$flavor =   queijo {pizza_queijo} |
            portuguesa {pizza_portuguesa} |
            toscana {pizza_toscana};
// ===================================================
- Gramática com interpretação semântica. Fonte em formato XML.
 Formato: application/srgs+xml. Exemplo:
<?xml version="1.0" encoding="utf8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar"
  mode="voice"
  root="order"
  tag-format="semantics/1.0-literals"
  xml:lang="pt-BR" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd">
  <rule id="order">
    <item repeat="0-1">
      <item>
        <ruleref uri="#want"/>
      </item>
    </item>
    <ruleref uri="#pizza"/>
    <item repeat="0-1">
      <one-of>
        <item>por favor</item>
        <item>por gentileza</item>
      </one-of>
    </item>
  </rule>
  <rule id="want">
    <item repeat="0-1">
      <item>eu</item>
    </item>
    <one-of>
      <item>quero</item>
      <item>queria</item>
      <item>gostaria de</item>
    </one-of>
    <item repeat="0-1">
      <item>uma</item>
    </item>
  </rule>
  <rule id="pizza">
    <item repeat="0-1">
      <one-of>
        <item>pizza</item>
        <item>de</item>
        <item>pizza de</item>
      </one-of>
    </item>
    <ruleref uri="#flavor"/>
  </rule>
  <rule id="flavor">
    <one-of>
      <item>queijo
        <tag>pizza_queijo</tag>
      </item>
      <item>portuguesa
        <tag>pizza_portuguesa</tag>
      </item>
      <item>toscana
        <tag>pizza_toscana</tag>
      </item>
    </one-of>
  </rule>
</grammar>
Mais informações sobre o nosso ASR, acesse: Reconhecimento de Fala
Biometria de Voz¶
A Biometria de Voz do CPQD realiza a confirmação da identidade de um locutor através de sua voz. Para isso o sistema possibilita o cadastro de amostras de voz (método de treinamento) para geração dos voiceprints que serão utilizados posteriormente, na processo de confirmação de identidade (método de verificação).
Mais informações sobre a Biometria de Voz, acesse Biometria de voz