음성 인식에 문법 사용

사용자 정의 언어 모델을 작성하고 이를 자신의 문법으로 학습시킨 후에는 음성 인식 요청에서 이 문법을 사용할 수 있습니다.

  • language_customization_id 쿼리 매개변수를 사용하여 문법이 정의된 사용자 정의 언어 모델의 사용자 정의 ID(GUID)를 지정하십시오. 사용자 정의 모델은 작성 시 기반이 된 기본 모델에만 사용될 수 있습니다. 사용자 정의 모델이 기본값 외의 모델을 기반으로 하는 경우에는 model 쿼리 매개변수를 사용하여 해당 기본 모델도 지정해야 합니다. 더 자세한 정보는 기본 모델 사용하기를 참고하세요. 모델을 소유하는 서비스 인스턴스에 대한 인증 정보로 요청을 발행해야 합니다.
  • 문법의 이름을 지정하려면 grammar_name 매개변수를 사용하십시오. 요청에 하나의 문법만을 지정할 수 있습니다.

문법을 사용하는 경우 서비스가 지정된 문법의 단어만 인식합니다. 이 서비스는 말뭉치에서 추가되거나, 개별적으로 추가 또는 수정되거나, 다른 문법에서 인식된 사용자 정의 단어를 사용하지 않습니다.

문법을 지원하는 언어 및 모델과 이들의 지원 수준(GA(General Availability) 또는 베타)은 사용자 정의에 대한 언어 지원을 참조하십시오.

사용자 정의 언어 모델에서의 문법 사용 예제

다음 예는 각 음성 인식 인터페이스에 대해 문법을 사용자 정의 언어 모델과 함께 사용하는 것을 보여줍니다.

  • 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}"