Biasing

Biasing은 libgspeech가 제안할 수 있는 다른 옵션보다 더 자주 특정 단어나 문구를 인식하는 데 도움이 됩니다. 이 문서에서는 libgspeech가 오디오 데이터를 텍스트로 변환할 때 필요한 단어 또는 문구를 인식할 확률을 높이는 프로세스를 안내합니다.

인식 모델을 특정 단어나 문구로 편향되게 하려면 SpeechAdaptation 객체의 phrase_sets 필드 내에 phrases로 전달합니다. SpeechAdaptation 객체를 요청에서 RecognitionConfig 객체의 adaptation 필드에 할당합니다.

adaptation: {
  phrase_sets {
    phrases: "weather is hot"
    phrases: "weather is cold"
}

클래스를 사용하여 모델 편향

클래스는 자연어에서 발생하는 일반적인 값(예: 숫자 값 및 달력 날짜)을 나타냅니다. 클래스를 사용하면 일반적인 개념으로 매핑되지만 항상 동일한 단어나 문구가 포함되지 않는 큰 단어 그룹의 텍스트 변환 정확도를 향상시킬 수 있습니다.

예를 들어 오디오 데이터에 사람들이 말한 자신의 상세 주소가 녹음되어 있다고 가정해 보겠습니다. 이 오디오에는 누군가 말한 "My house is 123 Main Street, the fourth house on the left."가 녹음되어 있을 수 있습니다. 이 경우 사용자는 Speech-to-Text가 첫 번째 숫자 시퀀스인 '123'을 서수 '123번째'가 아닌 주소로 인식하기를 원합니다. 하지만 모든 사람이 '123 Main Street'에 거주하는 것은 아니기 때문에 가능한 모든 상세주소를 문구에 나열하는 것은 실용적이지 않습니다. 대신 클래스를 사용하면 실제 숫자에 관계없이 번지 수로 인식되도록 할 수 있습니다.

클래스 토큰을 사용하려면 음성 적응 문구에 포함합니다. 클래스를 문구 배열에서 독립형 항목으로 사용하거나 더 긴 다중 단어 문구에 삽입할 수 있습니다. 예를 들어 소스 오디오에서 번지 수를 더욱 정확하게 텍스트로 변환하려면 $ADDRESSNUM 클래스를 사용하세요. 클래스 토큰을 'my address is $ADDRESSNUM'이라는 문자열에 포함하면 더 긴 문구에 번지 수를 표시할 수 있습니다. 하지만 이 문구는 'I am at 123 Main Street'과 같이 유사하지만 동일하지 않은 문구가 오디오에 포함된 경우에는 도움이 되지 않습니다. 유사한 문구를 인식하는 데 도움이 되도록 아래와 같이 클래스 토큰 자체를 추가로 포함하는 것이 중요합니다.

adaptation: {
  phrase_sets {
    phrases: "my address is $ADDRESSNUM"
    phrases: "$ADDRESSNUM"
  }
}

커스텀 클래스를 사용하여 모델 편향

커스텀 클래스는 관련 항목 또는 값에 대한 맞춤설정된 목록입니다.

사전 정의된 커스텀 클래스 사용

Google은 Speech-to-Text On-Device에 사용이 권장되는 몇 가지 사전 정의된 커스텀 클래스(예: contacts 또는 navigation)를 제공합니다. 이러한 커스텀 클래스는 해당 애플리케이션에서 자체 커스텀 클래스보다 더 높은 인식 정확도를 제공할 수 있는 문구를 나타낼 수 있습니다.

사전 정의된 커스텀 클래스는 요청에서 다르게 참조해야 하는 두 가지 카테고리로 나뉩니다.

  • phrasesitems를 제공해야 하는 커스텀 클래스(예: contacts)

  • custom_class_id로만 참조되는 커스텀 클래스(예: navigation)

phrasesitems가 필요한 커스텀 클래스를 사용하려면 items의 각 값이 포함된 CustomClass 객체를 만들고 phrases에서 custom_class_id로 이 클래스를 참조합니다. 예를 들면 다음과 같습니다.

adaptation: {
  custom_classes {
    custom_class_id: "contacts"
    items: "Asia"
    items: "Alex"
    items: "Nuno Pereira"
  }
  phrase_sets {
    phrases: "call ${contacts}"
  }
}

navigation 명령어에 phrasesitems를 제공할 필요가 없습니다. phrases 목록이 Google에서 제공된 가장 일반적인 문구 목록인 경우에는 사용자가 해당 컨텍스트에서 사용할 가능성이 있습니다(예: '고속도로 이용').

adaptation: {
  custom_classes {
    custom_class_id: "navigation"
  }
}

자체 커스텀 클래스 사용

사전 정의된 커스텀 클래스로 충족되지 않는 특정 비즈니스 요구 사항이 있는 경우 커스텀 클래스를 만들 수 있습니다. 예를 들어 수백 개의 지역별 음식점 이름 중에서 어느 한 개가 포함되었을 가능성이 있는 오디오 데이터를 텍스트로 변환하려고 합니다. 일반 발화에서 음식점 이름이 나오는 것은 상대적으로 드물기 때문에 이름을 커스텀 클래스에 지정하지 않는 한 인식 모델에서 '올바른' 답변으로 선택될 가능성이 낮습니다. 예를 들면 다음과 같습니다.

adaptation: {
  custom_classes {
    custom_class_id: "restaurants"
    items: "sushido"
    items: "taneda sushi"
    items: "altura"
  }
  phrase_sets {
    phrases: "visit restaurants like ${restaurants}"
  }
}