Speech-to-Text API에 데이터를 제공하기 위한 권장사항

이 문서에는 Speech-to-Text API에 음성 데이터를 제공하는 방법에 대한 권장사항이 포함되어 있습니다. 이 가이드라인은 서비스의 응답 시간을 합리적으로 개선하고 효율성과 정확성을 높이기 위해 마련되었습니다. 서비스에 전송되는 데이터가 이 문서에 설명된 매개변수 내에 있을 때 Speech-to-Text API를 가장 효율적으로 사용할 수 있습니다.

이 가이드라인을 따라도 API에서 기대하는 결과를 얻지 못하면 문제해결 및 지원을 참조하세요.

최적의 결과를 얻는 방법 가능하면 피해야 할 사항
16,000Hz 이상의 샘플링 레이트로 오디오를 캡처합니다. 샘플링 레이트가 낮으면 정확도가 떨어질 수 있습니다. 하지만 다시 샘플링하지 마세요. 예를 들어, 전화 통신에서 기본 속도는 일반적으로 서비스에 전송해야 하는 속도인 8,000Hz입니다.
무손실 코덱을 사용하여 오디오를 녹음하고 전송합니다. FLAC 또는 LINEAR16을 사용하는 것이 좋습니다. 녹음 또는 전송 시 mp3, mp4, m4a, mu-law, a-law 또는 기타 손실 코덱을 사용하면 정확도가 떨어질 수 있습니다. 오디오가 이미 API에서 지원되지 않는 방식으로 인코딩되었으면 무손실 FLAC 또는 LINEAR16으로 트랜스코딩합니다. 애플리케이션이 대역폭 보존을 위해 손실 코덱을 사용해야 하는 경우에는 AMR_WB, OGG_OPUS 또는 SPEEX_WITH_HEADER_BYTE 코덱 순서로 사용하는 것이 좋습니다.
인식기는 추가적인 주변 소음 제거 없이 백그라운드 음성과 노이즈를 무시하도록 설계되었습니다. 하지만 최적의 결과를 얻기 위해 특히 백그라운드 노이즈가 있는 경우 마이크를 최대한 사용자에게 가깝게 배치합니다. 특히 손실 코덱을 사용하는 경우, 과도한 백그라운드 노이즈와 에코는 정확도를 떨어뜨릴 수 있습니다.
한 명 이상에서 오디오를 캡처하고 각 사람을 개별 채널에 녹음하는 경우, 각 채널을 개별적으로 보내면 최상의 인식 결과를 얻을 수 있습니다. 하지만 모든 스피커가 단일 채널 녹음에 혼합된 경우, 녹음을 있는 그대로 보냅니다. 여러 사람이 동시에 또는 다양한 음량으로 대화하는 경우, 대화는 백그라운드 노이즈로 해석되어 무시될 수 있습니다.
단어와 구문 힌트를 사용하여 이름과 용어를 어휘에 추가하고 특정 단어와 구문의 정확도를 높입니다. 인식기에는 많은 수의 어휘가 있지만 어휘에 없는 용어와 고유 명사는 인식되지 않습니다.
짧은 쿼리 또는 명령어의 경우 single_utterance를 true로 설정한 채로 StreamingRecognize를 사용합니다. 이렇게 하면 짧은 발화에 대한 인식이 최적화되고 지연 시간이 최소화됩니다. 짧은 쿼리 또는 명령어에는 Recognize 또는 LongRunningRecognize를 사용하지 않는 것이 좋습니다.

샘플링 레이트

가능하면 오디오 소스의 샘플링 레이트를 16,000Hz로 설정합니다. 그렇지 않으면 다시 샘플링하지 않고 sample_rate_hertz를 오디오 소스의 기본 샘플링 레이트와 일치하도록 설정합니다.

프레임 크기

스트리밍 인식은 라이브 오디오를 마이크 또는 기타 오디오 소스에서 캡처된 그대로 인식합니다. 오디오 스트림은 프레임으로 분할되어 연속적인 StreamingRecognizeRequest 메시지로 전송됩니다. 모든 프레임 크기가 허용됩니다. 프레임 크기가 클수록 효율적이지만 지연 시간이 추가됩니다. 지연 시간과 효율성 간의 절충안으로 100밀리초 프레임 크기가 권장됩니다.

오디오 사전 처리

우수한 품질의 잘 배치된 마이크를 사용하여 가능한 선명한 오디오를 제공하는 것이 가장 좋습니다. 오디오를 서비스에 보내기 전에 오디오에 노이즈 감소 신호 처리를 적용하면 일반적으로 인식 정확도가 떨어집니다. 이 서비스는 노이즈가 많은 오디오를 처리하도록 설계되었습니다.

최상의 결과를 얻는 방법

  • 특히 백그라운드 노이즈가 있는 경우에는 마이크를 최대한 화자와 가깝게 배치합니다.
  • 오디오를 자르지 마세요.
  • 자동 게인 제어(AGC)를 사용하지 마세요.
  • 모든 노이즈 감소 처리를 중지해야 합니다.
  • 샘플 오디오를 듣습니다. 왜곡이나 예상치 못한 노이즈 없이 선명하게 들려야 합니다.

요청 구성

Speech-to-Text API에 요청과 함께 전송되는 오디오 데이터를 정확하게 기술해야 합니다. 요청의 RecognitionConfig에서 sampleRateHertz, encoding, languageCode를 올바르게 기술하면 텍스트 변환이 정확히 이루어지고 요청에 대한 요금도 정확히 청구됩니다.