将语法用于语音识别
一旦您创建并训练了带有语法的自定义语言模型,您就可以在语音识别请求中使用该语法:
- 使用
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}"