텍스트로 사용자 지정 음성 구현

Azure AI 서비스
Azure AI Speech
Azure Machine Learning

두 부분으로 구성된 이 가이드에서는 고품질 음성 인식 애플리케이션을 효율적으로 구현하기 위한 다양한 방법을 설명합니다. AI Speech 서비스에서 제공하는 음성 텍스트 변환 기능의 기준 모델을 확장하고 사용자 지정하는 데 중점을 둡니다.

이 아티클에서는 솔루션 설계를 위한 문제 공간 및 의사 결정 프로세스에 대해 설명합니다. 두 번째 문서인 텍스트에 사용자 지정 음성 배포 솔루션은 이러한 지침 및 권장 사례를 적용하기 위한 사용 사례를 제공합니다.

미리 빌드된 사용자 지정 AI 스펙트럼

미리 빌드된 사용자 지정 AI 스펙트럼은 바로 사용할 수 있는 미리 빌드된 모델부터 완전히 사용자 지정된 AI 솔루션에 이르는 여러 AI 모델 사용자 지정 및 개발 노력 계층을 보여줍니다.

사용자 지정 계층의 스펙트럼을 보여 주는 다이어그램

스펙트럼 의 왼쪽에서 Azure AI 서비스를 사용하면 미리 학습된 모델을 통해 애플리케이션에 AI 기능을 빠르고 낮은 마찰로 구현할 수 있습니다. Microsoft는 이러한 기준 모델을 학습시키고 빌드하기 위해 광범위한 데이터 세트를 엄선합니다. 그 결과 추가적인 학습 데이터 없이 기준 모델을 사용할 수 있습니다. 향상된 보안 프로그래밍 방식 API 호출을 통해 사용됩니다.

Azure AI 서비스에는 다음이 포함됩니다.

  • 음성. 음성 텍스트 변환, 텍스트 음성 변환, 음성 번역 및 Speaker Recognition
  • Language: 엔터티 인식, 감정 분석, 질문 답변, 대화형 언어 이해 및 번역기
  • 비전. Computer Vision 및 Face API
  • 의사 결정. Anomaly Detector, Content Moderator 및 Personalizer
  • OpenAI 서비스. 고급 언어 모델

미리 빌드된 기준 모델이 데이터에 대해 충분히 정확하게 수행되지 않는 경우 문제 도메인에 상대적인 학습 데이터를 추가하여 사용자 지정할 수 있습니다. 이 사용자 지정을 위해서는 적절한 모델을 학습시키고 평가하기 위해 적절한 데이터를 수집하기 위한 추가적인 노력이 필요합니다. 사용자 지정할 수 있는 Azure AI 서비스에는 Custom Vision, Custom 번역기, Custom Speech 및 CLU포함됩니다. 미리 빌드된 Azure AI 서비스 모델을 확장하는 것이 스펙트럼의 중심에 있습니다. 이 아티클의 대부분은 이 중앙 영역에 초점을 맞추고 있습니다.

또는 모델 및 학습 데이터가 특정 시나리오에 중점을 두고 독점적인 학습 데이터 세트가 필요한 경우 Azure Machine Learning은 사용자 지정 모델의 전체적인 빌드를 지원하기 위해 사용자 지정 솔루션 리소스, 도구, 컴퓨팅 및 워크플로 지침을 제공합니다. 이 시나리오는 스펙트럼의 오른쪽에서 볼 수 있습니다. 이 모델들은 처음부터 빌드됩니다. Azure Machine Learning을 사용한 모델 개발은 일반적으로 AutoML과 같은 시각적 도구를 사용하는 것부터 노트북을 사용해 프로그래밍 방식으로 모델을 개발하는 것까지 다양합니다.

Azure Speech Service

Azure Speech Service는 음성 텍스트 변환, 텍스트 음성 변환, 음성 번역, 음성 도우미 및 Speaker Recognition 기능을 Azure AI 서비스를 기반으로 하는 단일 구독으로 통합합니다. 사용하기 쉬운 SDK 및 API를 통해 Speech Service와 통합하여 음성용 애플리케이션을 가능하게 할 수 있습니다.

Azure 음성 텍스트 변환 서비스는 음성을 실시간으로 또는 비동기적으로 분석하여 음성 단어를 텍스트로 전사합니다. 기본적으로 Azure 음성 텍스트 변환은 일반적으로 사용되는 음성 언어를 반영하는 기준선으로 유니버설 언어 모델을 사용합니다. 이 기준 모델은 다양한 공통 분야를 대표하는 언어 및 음성학으로 미리 학습됩니다. 그 결과 이 기준 모델은 사용하기 위해 추가 구성이 필요하지 않으며 대부분의 시나리오에서 잘 작동합니다.

그러나 오디오에 주변 노이즈가 포함되어 있거나 업계 및 분야별 전문 용어가 많이 포함된 경우 기준 모델이 충분하지 않을 수 있습니다. 이러한 경우 사용자 지정 음성 모델을 빌드하는 것이 좋습니다. 이렇게 하려면 특정 분야와 관련된 추가 데이터를 사용하여 학습시켜야 합니다.

사용자 지정 분야의 크기에 따라 여러 모델을 학습시키고 개별 애플리케이션을 위한 모델을 구획화하는 것도 합리적일 수 있습니다. 예를 들어 올림픽 해설자는 각각의 전문 용어가 있는 다양한 종목에 대해 리포팅을 합니다. 각 종목에는 서로 상당히 다른 어휘가 사용되기 때문에 한 종목만을 위한 사용자 지정 모델을 빌드하면 해당 특정 종목과 관련한 발화 데이터가 제한되므로 정확도가 높아집니다. 그 결과 모델은 정확하고 대상 지정된 데이터 집합을 통해 학습할 수 있습니다.

따라서 Azure 음성 텍스트 변환을 구현하는 세 가지 방법이 있습니다.

  • 기준 모델은 오디오에 주변 노이즈가 없고 음성이 일반적으로 사용되는 언어로 구성된 경우에 적합합니다.
  • 사용자 지정 모델은 기준 모델을 보강하여 사용자 지정 분야의 모든 영역에서 공유되는 분야별 어휘를 포함합니다.
  • 사용자 지정 분야에 각각 특정 어휘가 있는 여러 영역이 있는 경우 여러 사용자 지정 모델을 사용하는 것이 합리적입니다.

Azure 음성 텍스트 변환을 구현하는 세 가지 방법을 요약한 다이어그램.

잠재적인 사용 사례

다음은 사용자 지정 음성 텍스트 변환이 유용한 몇 가지 일반적인 시나리오 및 사용 사례입니다.

  • 의료 전사물 또는 콜 센터 전사물과 같은 특정 분야를 위한 음성 전사물
  • 앱 영상 등의 라이브 전사물 또는 라이브 비디오 스트리밍의 자막 제공

Microsoft SDK 및 오픈 소스 도구

음성 텍스트 변환을 사용하는 경우 다음과 같은 리소스가 유용할 수 있습니다.

디자인 고려 사항

이 섹션에서는 음성 기반 애플리케이션 빌드를 위한 몇 가지 디자인 고려 사항에 대해 설명합니다.

기준 모델과 사용자 지정 모델 비교

Azure Speech에는 다양한 언어를 지원하는 기준 모델이 포함되어 있습니다. 이러한 모델은 방대한 양의 어휘 및 분야로 미리 학습됩니다. 그러나 인식이 필요한 특수 어휘가 있을 수 있습니다. 이러한 상황에서는 기준 모델이 부족할 수 있습니다. 기본 모델이 충분할지 여부를 결정하는 가장 좋은 방법은 기준 모델에서 생성된 기록을 분석하고 동일한 오디오에 대해 사람이 생성한 대본과 비교하는 것입니다. 이 가이드의 배포 아티클에서는 Speech Studio를 사용하여 전사를 비교하고 단어 오류율(WER) 점수를 계산하는 방법을 설명합니다. 결과에 잘못된 단어로 치환된 경우가 여러 번 있는 경우 해당 단어를 인식하도록 사용자 지정 모델을 학습하는 것이 좋습니다.

하나 대 다수의 사용자 지정 모델

사용자 지정 모델이 시나리오에 도움이 된다면 그다음에는 빌드할 모델 수를 결정해야 합니다. 발화가 하나의 영역 또는 분야와 밀접하게 관련된 경우 일반적으로 하나의 모델로도 충분합니다. 그러나 분야 영역에 걸쳐 어휘가 크게 다른 경우 여러 모델이 있는 것이 가장 좋습니다. 이 시나리오에서는 다양한 학습 데이터도 필요합니다.

올림픽 예시로 돌아가겠습니다. 아이스하키, 루지, 스노우보드, 알파인 스키 등 여러 종목에 대한 오디오 해설의 전사물을 포함해야 한다고 가정합니다. 각 종목에는 고유한 용어가 있기 때문에 각 종목을 위한 사용자 지정 음성 모델을 빌드하면 정확도가 향상됩니다. 그러나 각 모델에는 각기 다른 학습 데이터가 있어야 합니다. 지나친 제한 및 확장성 한계로 인해 각 종목의 해설자를 위한 모델을 만들 수는 없습니다. 보다 실용적인 접근 방식은 각 종목을 위해 하나의 모델을 빌드하는 것이지만, 서로 다른 악센트와 성별, 연령대의 해설자를 망라하는 그룹의 오디오를 포함하는 것입니다. 다양한 해설자에게서 캡처한 종목 관련 분야별 문구가 동일한 모델에 포함되어 있습니다.

지원할 언어와 로캘도 고려해야 합니다. 로캘별로 이러한 모델을 만드는 것이 합리적일 수 있습니다.

음향 및 언어 모델 적응

Azure Speech는 사용자 지정 모델을 학습시키기 위한 세 가지 옵션을 제공합니다.

언어 모델 적응은 가장 일반적으로 사용되는 사용자 지정입니다. 언어 모델을 사용하면 특정 컨텍스트 또는 특정 분야에서 특정 단어가 함께 사용되는 방법을 학습하는 데 도움이 됩니다. 언어 모델을 빌드하는 것도 비교적 쉽고 빠릅니다. 먼저 특정 분야를 위한 다양한 발화와 문구를 제공하여 모델을 학습시킵니다. 예를 들어 알파인 스키에 관한 전사물을 생성하는 것이 목표인 경우 여러 스키 이벤트에 관해 사람에 의한 전사를 수집합니다. 이를 정리하고 결합하여 약 50,000개의 문구와 문장으로 하나의 학습 데이터 파일을 만듭니다. 사용자 지정 언어 모델 학습을 위한 데이터 요구 사항에 관한 자세한 내용은 데이터 세트 학습 및 테스트를 참조하세요.

발음 모델 사용자 지정은 가장 일반적으로 사용되는 사용자 지정 중 하나입니다. 발음 모델은 사용자 지정 모델이 표준 발음이 없는 일반적이지 않은 단어를 인식하도록 도움을 줍니다. 예를 들어, 알파인 스키의 일부 용어는 schussmogul이라는 용어와 같이 다른 언어에서 차용됩니다. 이러한 단어는 발음 데이터 세트를 사용하여 학습할 수 있는 훌륭한 후보입니다. 발음 파일을 사용하여 인식을 개선하는 방법에 대한 자세한 내용은 학습을 위한 발음 데이터를 참조하세요. Speech Studio를 사용하여 사용자 지정 모델을 빌드하는 방법에 대한 자세한 내용은 Custom Speech란?을 참조하세요.

음향 모델 적응은 Azure Speech에서 제대로 인식할 수 있도록 특정 단어의 발음에 대한 음성학 학습을 제공합니다. 음향 모델을 빌드하려면 오디오 샘플과 이를 사람이 받아쓴 전사물이 필요합니다. 인식 언어가 en-US와 같은 일반적인 로캘과 일치하는 경우 현재 기준 모델을 사용하는 것으로 충분할 것입니다. 기준 모델에는 영어가 모국어인 발화자와 모국어가 아닌 발화자의 음성을 사용하여 방대한 양의 영어 어휘를 다루는 다양한 학습이 포함되어 있습니다. 따라서 en-US 기준 모델에서 음향 모델 적응을 빌드해도 크게 개선되지 않을 수 있습니다. 사용자 지정 음향 모델의 학습에도 시간이 좀 더 걸립니다. 사용자 지정 음향 학습의 데이터 요구 사항에 대한 자세한 내용은 데이터 세트 학습 및 테스트를 참조하세요.

최종 사용자 지정 모델에는 이 섹션에서 설명한 세 가지 사용자 지정의 조합을 사용하는 데이터 세트가 포함될 수 있습니다.

사용자 지정 모델 학습

사용자 지정 모델을 학습하는 접근 방식에는 두 가지가 있습니다.

  • 해당 분야의 문구 및 발화의 다양한 예제를 사용하여 학습합니다. 예를 들어, 정리되고 정상화된 알파인 스키 이벤트 오디오의 전사물과 이 이벤트에 관해 사람이 받아쓴 전사물을 포함합니다. 전사에는 알파인 스키에 사용되는 용어와 해설자가 어떻게 발음하는지에 대한 여러 예가 포함되어 있어야 합니다. 이 프로세스를 따르는 경우 결과 사용자 지정 모델은 분야별 단어와 문구를 인식할 수 있을 것입니다.

  • 문제 영역에 중점을 둔 특정 데이터를 사용하여 학습합니다. 학습 데이터가 많지 않고, 예를 들어 알파인 스키 이벤트 도중 새로운 속어를 사용하고 모델에 포함시켜야 하는 경우 이 접근 방식은 매우 적합합니다. 이 유형의 학습에서는 다음 접근 방식을 사용합니다.

    • Speech Studio를 사용하여 전사물을 생성하고 사람이 만든 전사물과 비교합니다.
    • 해설자가 말하는 패턴에서 문제 영역을 식별합니다. 식별:
      • 문제 단어 또는 발화가 적용되는 컨텍스트.
      • 단어 또는 발화의 다양한 억양 및 발음.
      • 단어 또는 발화의 모든 고유한 해설자별 적용.

특정 데이터를 사용하여 사용자 지정 모델을 학습시키는 것은 시간 소모적일 수 있습니다. 전사물의 차이를 신중하게 분석하고, 학습 문구를 수동으로 추가하고, 이 프로세스를 여러 번 반복하는 단계가 포함됩니다. 그러나 결국 이 접근 방식은 이전에 잘못 전사된 문제 영역에 대한 집중 학습을 제공합니다. 그리고 중요한 영역에 대해 선택적으로 학습한 다음 중요도 순서대로 목록을 진행하여 이 모델을 반복적으로 빌드할 수 있습니다. 또 다른 이점은 학습 데이터를 여러 번 반복적으로 빌드한 후에도 데이터 세트 크기에 수천 개가 아닌 수백 개의 발화가 포함된다는 것입니다.

모델을 빌드한 후

모델을 빌드한 후 다음 권장 사항에 유의하세요.

  • 어휘 텍스트와 표시 텍스트의 차이점에 유의하세요. Speech Studio는 어휘 텍스트에 기반해 WER을 생성합니다. 그러나 사용자가 보는 것은 문장 부호, 대/소문자 구분 및 숫자 단어가 숫자로 표시된 표시 텍스트입니다. 다음은 어휘 텍스트와 표시 텍스트의 예입니다.

    어휘 텍스트 : 속도가 좋으며 시간은 독일어에 대한 더 나은 오십 일곱 오 6 세 초입니다

    표시 텍스트: 속도는 훌륭합니다. 그리고 시간은 더 훌륭합니다. 독일어로 57063초입니다.

    예상되는 것(암시적): 속도는 훌륭합니다. 그리고 시간은 더 훌륭합니다. 독일어로 57.063초입니다

    사용자 지정 모델은 WER 점수가 낮지만 사용자가 인식하는 오류율(표시 텍스트의 오류)이 낮다는 것을 의미하지는 않습니다. 이 문제는 주로 영숫자 입력에서 발생합니다. 다른 애플리케이션에 입력을 나타내는 다른 방법이 있을 수 있기 때문입니다. WER에만 의존해서는 안 됩니다. 최종 인식 결과도 검토해야 합니다.

    표시 텍스트가 잘못된 것 같으면 모든 항목이 철자가 지정된 어휘 텍스트를 포함하는 SDK의 자세한 인식 결과를 검토합니다. 어휘 텍스트가 정확하면 인식이 정확합니다. 그런 다음, 사후 처리 규칙을 추가하여 표시 텍스트(최종 인식 결과)의 부정확성을 해결할 수 있습니다.

  • 데이터 세트, 모델 및 해당 버전을 관리합니다. Speech Studio에서는 프로젝트, 데이터 세트 및 모델을 만들 때 이름과 설명 이렇게 두 개의 필드만 있습니다. 데이터 세트 및 모델을 반복적으로 빌드할 때 데이터 세트의 내용과 각 데이터 세트 버전을 반영하는 모델을 쉽게 식별할 수 있도록 좋은 명명 및 버전 관리 체계를 따라야 합니다. 이 권장 사항에 대한 자세한 내용은 텍스트 솔루션에 사용자 지정 음성 배포를 참조 하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계