将语法用于语音识别

一旦您创建并训练了带有语法的自定义语言模型,您就可以在语音识别请求中使用该语法:

  • 使用 language_customization_id 查询参数指定自定义语言模型的自定义ID(GUID),语法已为其定义。 为某个基本模型创建的定制模型只能用于该基本模型。 如果您的定制车型基于默认车型以外的其他车型,您还必须通过 model 查询参数指定该基础车型。 更多信息,请参阅 使用默认模型。 您必须使用拥有该模型的服务实例的凭证来发出请求。
  • 使用 grammar_name 参数可指定语法的名称。 一个请求只能指定一个语法。

使用语法时,服务仅会根据指定的语法来识别词。 服务不会使用从语料库中添加的定制词、单独添加或修改的定制词,也不会使用其他语法可识别的定制词。

如需了解支持语法和其支持级别(一般可用或测试版)的语言和模型的更多信息,请参阅 自定义的语言支持。

将语法用于定制语言模型的示例

以下示例展示了每个语音识别界面使用自定义语言模型的语法:

  • 对于 WebSocket 接口,请首先使用 language_customization_id 方法的 /v1/recognize 参数来指定定制标识。 使用此方法可建立与服务的 WebSocket 连接。

    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);
    

    然后,在活动连接的 JSON grammar_name 消息中,使用 start 参数来指定语法的名称。 使用 start 消息传递此值时,可以为通过连接发送的每个请求动态更改语法。

    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);
    }
    
  • 对于同步 HTTP 接口,请使用 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}"
    
  • 对于异步 HTTP 接口,请使用 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}"