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 ===
Collected: 2018-12-01T13:24:56+0000
--- Machine information ---
Linux: CentOS Linux release 7.6.1810 (Core)
Hostname: fe6fbe2b9b5f
MemTotal: 16329200 kB
MemAvailable: 6513268 kB
CPU(s): 4
Socket(s): 1
Model name: Intel(R) Core(TM) i7-4600U CPU @ 2.90GHz
Disk space [/opt/cpqd/asr]: 61G
Disk space [/var/log/cpqd/asr]: 61G
Java installed: Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
--- ASR packages installed ---
am-es-8k-1.0.6-b2
am-ptbr-8k-1.0.6-b4
cpqd-asr-engine-RHEL7.2-3.3.0-m
cpqd-asr-server-java1.8-3.7.0
grammar-es-builtin-1.0.1
grammar-ptbr-builtin-1.0.2
slm-es-1.0.0-am-es-8k-1.0.6-b2
slm-ptbr-1.0.0-am-ptbr-8k-1.0.6-b2
--- ASR configuration ---
Language package: es-8k-1.0.6
Language: es
Audio sampling rate (Hz): 8k
SLM: builtin:slm/general
SLM installed: true
License type: server
License ID: ABCDABCD00000001
Channels: 10
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.