Gramáticas Locais

Uma gramática local é aquela que está depositada num diretório do próprio servidor 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>

../../_images/local_grammar.png

Fig. 9 Referência à gramática local

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:8025
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();
    }