Gramáticas pré-compiladas

O ASR permite que gramáticas sejam compiladas antes de serem carregadas para reconhecimento. Uma gramática pré-compilada leva menos tempo para ser carregada pelo motor de reconhecimento, e pode apresentar um tempo de reconhecimento menor, mas isso não é garantido.

Recomenda-se o uso de gramáticas pré-compiladas em casos nos quais a gramática a ser usada é muito grande e apresenta um tempo de compilação mais alto que o desejado pelo desenvolvedor da aplicação.

A ferramenta usada para compilação de gramáticas é o programa grammar-compile. Como exemplo, vamos compilar a gramática pizza.gram da seção anterior. Isso pode ser feito com o seguinte comando:

$ grammar-compile pizza.gram

Esse comando criará o diretório local pizza, e colocará nele os arquivos correspondentes à gramática compilada. O diretório de saída pode ser alterado por meio da opção --out.

Aviso

Utilizando o comando acima, a gramática será compilada usando o pacote de idioma padrão instalado. Caso tenha instalado o modelo acústico do Espanhol como padrão, a gramática será compilada para este idioma, mesmo que na máquina esteja também o modelo do Português. Veja a seguir como definir o idioma na compilação.

Compilando para outro idioma

Caso deseje compilar a gramática para determinado idioma, diferente do idioma padrão instalado, deve indicá-lo na chamada do comando grammar-compile.

Para verificar os pacotes de idioma instalados, use o comando cpqdasr-info:

$ cpqdasr-info

=== CPqD ASR information ===

Created: 2026-04-13T09:27:08-03:00

--- Machine information ---

Linux: "Ubuntu 24.04.3 LTS"
Hostname: dell7kns954
MemTotal: 15675,9 MB
MemAvailable: 1162,59 MB
CPU(s):                                  12
Disk space [/opt/cpqd/asr]: 172G
Disk space [/var/log/cpqd/asr]: 172G
Java installed: OpenJDK Runtime Environment (build 21.0.10+7-Ubuntu-124.04)

--- ASR packages installed ---

am-ptbr-8k-general-v8.2
cpqd-asr-engine-3.10.0-rc2-ubuntu24.run
cpqd-asr-server
grammar-ptbr-builtin-1.3.1
slm-ptbr-general-v4.0-am-ptbr-8k-general-v8

--- ASR configuration ---

Language package: ptbr-8k-general-v8
Language: ptbr
Audio sampling rate (Hz): 8k
SLM: builtin:slm/general
SLM installed: true
License type: server
License ID: N*ASR-69BA97BE-****-OLQEXQL79A-3195
Channels: 100

No nosso exemplo, o modelo acústico padrão é o Espanhol (Language package: es-8k-1.0.6), mas desejamos usar o modelo do Português. O release do pacote do Português é “am-ptbr-8k-1.0.6-b4” (veja seção ASR packages installed), mas para compilar a gramática precisamos indicar o nome do pacote do idioma “ptbr-8k-1.0.6”. Execute então o comando grammar-compile com parâmetro --am, conforme o exemplo seguinte:

$ grammar-compile --am=ptbr-8k-1.0.6 pizza.gram

O diretório local gerado pizza contém então a gramática compilada para o Português do Brasil, usando o pacote de idioma ptbr-8k-1.0.6.

Compilando gramáticas XML

A ferramenta grammar-compile também aceita gramáticas no formato XML. A compilação de gramáticas XML é feita do mesmo modo que a compilação de gramáticas ABNF:

$ grammar-compile pizza.grxml

Igualmente, a gramática compilada será armazenada no novo diretório pizza.

Para utilizar uma gramática pré-compilada no reconhecimento de fala, basta indicar o caminho do diretório da gramática, gerado pela ferramenta grammar-compile.

O tempo de carregamento da gramática será menor para gramáticas pré-compiladas.