음성 정확도 측정 및 개선

개요

머신 스크립트 작성 또는 Speech-to-Text(STT)로도 알려진 자동 음성 인식(ASR)은 머신러닝을 사용하여 음성이 포함된 오디오를 텍스트로 변환합니다. ASR에는 자막부터 가상 어시스턴트, 대화형 음성 응답(IVR), 음성기록 등 다양한 애플리케이션이 있습니다. 그러나 머신러닝 시스템이 100% 정확하지는 않으며 ASR도 예외가 아닙니다. 중요 시스템에 ASR을 사용할 계획이라면 이를 통합하는 광범위한 시스템에서 어떻게 작동하는지 알기 위해 정확성 또는 전반적인 품질을 측정하는 것이 매우 중요합니다.

정확도를 측정하면 특정 상황에 더 높은 정확성을 제공하도록 시스템을 조정할 수 있습니다. Google의 Cloud Speech-to-Text API에서 가장 적합한 인식 모델을 선택하고 해당 Speech Adaptation API를 사용하여 정확성을 조정할 수 있습니다. 긴 오디오, 의료 또는 전화 대화 등 여러 사용 사례에 맞게 맞춤화된 다양한 모델을 제공합니다.

음성 정확도 정의

음성 정확도는 다양한 방법으로 측정할 수 있습니다. 필요에 따라 여러 측정항목을 사용하면 유용할 수 있습니다. 하지만 업계 표준 비교 방법은 단어 오류율(WER)이며 WER로 줄여서 나타내는 경우가 많습니다. WER은 전체 세트에서 잘못된 단어 스크립트 작성 비율을 측정합니다. WER이 낮으면 시스템이 더 정확하다는 의미입니다.

ASR 정확성의 의미에서 사용되는 정답이라는 컨텍스트도 표시될 수 있습니다. 정답은 일반적으로 사용자가 제공한 100% 정확한 스크립트 작성으로, 정확성을 비교하고 측정하는 데 사용됩니다.

단어 오류율(WER)

WER은 발생할 수 있는 세 가지 유형의 스크립트 작성 오류의 조합입니다.

  • 삽입 오류(I): 정답에 없는 가설 스크립트에 있는 단어입니다.
  • 대체 오류(S): 가설과 정답에 모두 나와 있지만 스크립트가 올바르게 작성되지 않는 단어입니다.
  • 삭제 오류(D): 가설에 누락되었지만 정답에 있는 단어입니다.

\[WER = {S+R+Q \over N}\]

WER을 찾으려면 이러한 각 오류의 총 수를 추가하고 정답 스크립트의 총 단어 수(N)로 나눕니다. 예를 들어 대량의 새로운 텍스트가 삽입된 경우 정확성이 매우 낮은 상황에서 WER이 100%를 초과할 수 있습니다. 참고: 대체 항목은 삽입 후 기본적으로 삭제되며 일부 대체 항목은 다른 항목보다 심각하지 않습니다. 예를 들어 한 글자가 아닌 한 단어로 대체하는 데 차이가 있을 수 있습니다.

WER과 신뢰도 점수의 관계

WER 측정항목은 신뢰도 점수와 별개이며 일반적으로 서로 상관 관계가 없습니다. 신뢰도 점수는 가능성을 기준으로 하는 반면, WER은 단어가 올바르게 식별되었는지 여부를 기준으로 합니다. 단어가 올바르게 식별되지 않으면 사소한 문법 오류도 높은 WER을 유발할 수 있습니다. 올바르게 식별된 단어는 낮은 WER로 이어져 가능성이 낮아질 수 있으며, 이러한 단어가 자주 사용되지 않거나 오디오의 노이즈가 매우 많은 경우 신뢰도가 낮아집니다.

마찬가지로 자주 사용되는 단어는 ASR에 의해 스크립트가 작성될 가능성이 높아 신뢰도 점수가 높아집니다. 예를 들어 'I'와 'eye' 사이의 차이가 식별되면 'I'가 자주 사용되는 단어이지만 WER 측정항목이 더 낮아지므로 신뢰도가 높아질 수 있습니다.

요약하면 신뢰도 및 WER 측정항목은 독립적이며 상관관계가 없어야 합니다.

정규화

WER 측정항목 계산 시 머신 스크립트 작성은 사용자가 제공한 정답 스크립트 작성과 비교됩니다. 비교가 완료되기 전에 두 스크립트 작성의 텍스트가 정규화됩니다. 구두점이 삭제되고 머신 스크립트 작성을 사람이 제공한 정답 스크립트 작성과 비교할 때 대문자 사용은 무시됩니다.

정답 규칙

특정 오디오에는 사용자가 동의한 단일 스크립트 작성 형식이 없다는 점에 유의하십시오. 고려해야 할 사항이 많습니다. 예를 들어 오디오에는 'huh', 'yesp', 'umm'과 같은 말이 아닌 기타 발화가 있을 수 있습니다. 'medical_conversation'과 같은 일부 Cloud STT 모델에는 이러한 발화가 포함되지만 다른 모델에는 포함되지 않습니다. 따라서 정답 규칙이 평가되는 모델의 규칙과 일치하는 것이 중요합니다. 다음의 개략적인 가이드라인은 특정 오디오의 정답 텍스트 스크립트 작성을 준비하는 데 사용됩니다.

  • 표준 문자 외에도 0~9자리의 숫자를 사용할 수 있습니다.
  • '@', '#', '$', '.'와 같은 기호를 사용하지 마세요. 'at', 'hash', 'dollar', 'dot'과 같은 단어를 사용합니다.
  • '%'를 사용합니다. 단, 숫자가 앞에 오며, 그렇지 않은 경우 'percent'라는 단어를 사용합니다.
  • '\$'는 '우유는 3.99달러'와 같이 숫자 뒤에 오는 경우에만 사용하십시오.

  • 10자리 미만의 숫자에는 단어를 사용합니다.

    • 예: '나는 고양이 4마리와 모자 12개가 있습니다.'
  • 측정값, 통화, 백만, 10억, 조 같은 대규모 요인에 숫자를 사용하세요. 예를 들어 'seven and a half million' 대신 '7.5 million'을 사용합니다.

  • 다음과 같은 경우 약어를 사용하지 마세요.

    권장사항 금지사항
    Warriors와 Lakers 비교 Warriors와 Lakers 비교
    123 Main Street에 거주하고 있습니다. 123 Main St에 거주하고 있습니다.

음성 정확도 측정

다음 단계에 따라 오디오를 사용하여 정확성 확인을 시작할 수 있습니다.

테스트 오디오 파일 수집

오디오 파일의 대표 샘플을 수집하여 품질을 측정합니다. 이 샘플은 무작위여야하며 가능한 대상 환경에 근접해야 합니다. 예를 들어 콜센터의 대화를 스크립트로 작성하여 품질 보증을 지원하려는 경우, 프로덕션 오디오가 전달되는 동일한 장비에 녹음된 몇몇 실제 통화를 무작위로 선택해야 합니다. 휴대폰이나 컴퓨터 마이크에 오디오가 녹음되고 사용 사례를 대표하지 않는 경우 녹음된 오디오를 사용하지 마세요.

통계적으로 유의미한 정확도 측정항목을 얻으려면 30분 이상의 오디오를 녹음합니다. 30분~3시간 길이의 오디오를 사용하는 것이 좋습니다. 이 실습에서는 오디오가 제공됩니다.

정답 스크립트 작성 가져오기

정확한 오디오 스크립트 작성을 가져옵니다. 여기에는 일반적으로 대상 오디오의 단일 또는 이중 전달 수동 스크립트 작성이 포함됩니다. 목표는 자동화 결과를 측정하기 위해 100% 정확한 스크립트를 작성하는 것입니다.

정답 스크립트 작성을 대상 ASR 시스템의 스크립트 작성 규칙과 최대한 근접하게 만드는 것이 중요합니다. 예를 들어 구두점, 숫자, 대문자가 일관적인지 확인합니다.

머신 스크립트 작성을 가져오고 발견한 모든 텍스트 문제를 해결합니다.

머신 스크립트 작성 가져오기

오디오를 Google 음성 텍스트 변환 API로 전송하고 Speech-to-Text UI를 사용하여 가설 스크립트 작성을 가져옵니다.

정답을 오디오에 페어링

UI 도구에서 'Attach 정답'을 클릭하여 지정된 오디오 파일을 제공된 정답과 연결합니다. 연결을 완료하면 WER 측정항목과 모든 차이점의 시각화를 확인할 수 있습니다.