Usando uma gramática para reconhecimento de voz

Uma vez que o modelo de idioma customizado é criado e treinado com sua gramática, é possível usar a gramática em solicitações de reconhecimento de voz:

  • Use o parâmetro de consulta language_customization_id para especificar o ID de customização (GUID) do modelo de idioma customizado para o qual a gramática está definida. Um modelo customizado pode ser usado somente com o modelo base para o qual ele é criado. Se o seu modelo customizado for baseado em um modelo diferente do padrão, você também deverá especificar esse modelo base com o parâmetro de consulta model. Para obter mais informações, consulte Uso do modelo padrão. Deve-se emitir a solicitação com credenciais para a instância do serviço que possui o modelo.
  • Use o parâmetro grammar_name para especificar o nome da gramática. É possível especificar somente uma única gramática com uma solicitação.

Quando você usa uma gramática, o serviço reconhece apenas palavras da gramática especificada. O serviço não usa palavras customizadas que foram incluídas dos corpora, que foram incluídas ou modificadas individualmente ou que são reconhecidas por outras gramáticas.

Para obter mais informações sobre os idiomas e modelos que suportam gramáticas e seu nível de suporte (geralmente disponível ou beta), consulte Suporte ao idioma para customização.

Exemplos de uso de uma gramática com um modelo de idioma customizado

Os exemplos a seguir mostram o uso de uma gramática com um modelo de idioma customizado para cada interface de reconhecimento de voz:

  • Para a interface do WebSocket, você primeiro especifica o ID de customização com o parâmetro language_customization_id do método /v1/recognize. Você usa esse método para estabelecer uma conexão do WebSocket com o serviço.

    var access_token = {access_token};
    var wsURI = '{ws_url}/v1/recognize'
      + '?access_token=' + access_token
      + '&language_customization_id={customization_id}';
    var websocket = new WebSocket(wsURI);
    

    Em seguida, especifique o nome da gramática com o parâmetro grammar_name na mensagem JSON start para a conexão ativa. Transmitir esse valor com a mensagem start permite mudar a gramática dinamicamente para cada solicitação que você envia por meio da conexão.

    function onOpen(evt) {
      var message = {
        action: 'start',
        content-type: 'audio/l16;rate=22050',
        grammar_name: '{grammar_name}'
      };
      websocket.send(JSON.stringify(message));
      websocket.send(blob);
    }
    
  • Para a interface HTTP síncrona, passe os dois parâmetros com o método POST /v1/recognize.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&grammar_name={grammar_name}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST  \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&grammar_name={grammar_name}"
    
  • Para a interface de HTTP assíncrona, passe os dois parâmetros com o método POST /v1/recognitions.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?language_customization_id={customization_id}&grammar_name={grammar_name}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?language_customization_id={customization_id}&grammar_name={grammar_name}"