使用文法進行語音辨識

使用語法建立並訓練自訂語言模型後,您就可以在語音辨識要求中使用語法:

  • 使用 language_customization_id 查詢參數指定定義文法的自訂語言模型的自訂 ID (GUID)。 自訂模型只能與其建立目的的基礎模型搭配使用。 如果您的自訂模型是基於預設以外的模型,您也必須使用 model 查詢參數指定該基本模型。 如需詳細資訊,請參閱 使用預設模型。 您必須使用擁有該模型之服務實例的認證來發出要求。
  • 使用 grammar_name 參數來指定文法的名稱。 在一個要求中,只能指定單一文法。

當您使用文法時,該服務只會辨識指定文法中的字組。 該服務不會使用從語料庫中新增、個別新增或修改或是由其他文法所辨識的自訂字組。

有關支援語法的語言和模型及其支援等級 (一般可用或測試版) 的詳細資訊,請參閱 自訂語言支援。

搭配使用文法與自訂語言模型的範例

以下範例顯示每個語音辨識介面使用自訂語言模型的文法:

  • 對於 WebSocket 介面,首先請使用 language_customization_id 方法的 /v1/recognize 參數來指定自訂作業 ID。 您可以使用此方法來建立與服務的 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}"