Gramáticas Locais¶
Uma gramática local é aquela que está depositada num diretório do próprio servidor CPQD ASR. Se a aplicação utiliza vários servidores ASR, a gramática deve estar em todos eles. A gramática local é usada através da URI: file://<caminho da gramática>
Veja exemplos de uso para as diferentes API’s:
API REST
POST /asr/rest/V3/recognize?lm=file:///opt/grammar/pizza.gram HTTP/1.1
Host: 127.0.0.1:8080
Accept: */*
Content-Type: audio/wav
Content-Length: ...
<conteúdo binário do áudio>
API WebSocket
C->S: ASR 2.4 START_RECOGNITION
Content-Type: text/uri-list
Content-Length: …
file:///opt/grammar/pizza.gram
API MRCPv2
C->S: MRCP/2.0 ... RECOGNIZE 543260
Channel-Identifier:32AECB23433801@speechrecog
Content-Type:text/uri-list
Content-Length:...
file:///opt/grammar/pizza.gram
Criação de objeto LanguageModel em JAVA para uso com API GRPC
public RecognitionConfig.LanguageModel createLanguageModelUsingLocalGrammarFile(Path fileUri) {
String lmDefinition = new String(Files.readAllBytes(fileUri));
RecognitionConfig.LanguageModel lm = RecognitionConfig.LanguageModel.newBuilder()
.setId(Integer.toHexString(fileUri.hashCode())).setContentType("application/srgs")
.setDefinition(lmDefinition).build();
}