다음을 통해 공유


사용자 지정 음성 모델의 정확도 테스트

이 문서에서는 기본 음성 텍스트 변환 모델 또는 사용자 고유의 사용자 지정 모델의 정확도를 양적으로 측정하고 향상시키는 방법에 대해 알아봅니다. 정확도를 테스트하려면 오디오 + 휴먼 레이블 대화 기록 데이터가 필요합니다. 30분에서 5시간의 대표 오디오를 제공해야 합니다.

Important

테스트할 때 시스템에서 기록을 수행합니다. 서비스 제공 및 구독 수준에 따라 가격이 달라지기 때문에 이 점을 염두에 두어야 합니다. 항상 공식 Azure AI 서비스 가격에서 최신 세부 정보를 참조하세요.

테스트 만들기

테스트를 만들어 사용자 지정 모델의 정확도를 테스트할 수 있습니다. 테스트에는 오디오 파일 컬렉션과 해당 대화 내용의 기록이 필요합니다. 사용자 지정 모델의 정확도를 음성 텍스트 변환 기반 모델 또는 다른 사용자 지정 모델과 비교할 수 있습니다. 테스트 결과를 받은 후 음성 인식 결과와 비교하여 WER(단어 오류율)을 평가 합니다.

테스트를 만들려면 다음 단계를 따릅니다.

  1. Speech Studio에 로그인합니다.

  2. 사용자 지정 음성> 내 프로젝트 이름 >테스트 모델을 선택합니다.

  3. 새 테스트 만들기를 선택합니다.

  4. 정확도 평가>다음을 선택합니다.

  5. 하나의 오디오 + 휴면 레이블 대화 기록 데이터 세트를 선택한 후 다음을 선택합니다. 사용 가능한 데이터 세트가 없으면 설정을 취소한 다음 음성 데이터 세트 메뉴로 이동하여 데이터 세트를 업로드합니다.

    참고 항목

    모델에 사용한 것과 다른 음향 데이터 세트를 선택하는 것이 중요합니다. 이 접근 방식은 모델의 성능에 대한 보다 현실적인 감각을 제공할 수 있습니다.

  6. 평가할 모델을 최대 2개까지 선택한 후 다음을 선택합니다.

  7. 테스트 이름과 설명을 입력하고 다음을 선택합니다.

  8. 테스트 세부 정보를 검토한 다음 저장하고 닫기를 선택합니다.

테스트를 만들려면 spx csr evaluation create 명령을 사용합니다. 다음 지침에 따라 요청 매개 변수를 생성합니다.

  • project 매개 변수를 기존 프로젝트의 ID로 설정합니다. 이 매개 변수는 Speech Studio에서도 테스트를 볼 수 있도록 하기 위해 권장됩니다. spx csr project list 명령을 실행하여 사용 가능한 프로젝트를 가져올 수 있습니다.
  • 필수 model1 매개 변수를 테스트하려는 모델의 ID로 설정합니다.
  • 필수 model2 매개 변수를 테스트하려는 다른 모델의 ID로 설정합니다. 두 모델을 비교하지 않으려면 model1model2 둘 다에 대해 동일한 모델을 사용합니다.
  • 필수 dataset 매개 변수를 테스트에 사용할 데이터 세트의 ID로 설정합니다.
  • language 매개 변수를 설정합니다. 그렇지 않으면 Speech CLI는 기본적으로 "en-US"로 설정됩니다. 이 매개 변수는 데이터 세트 콘텐츠의 로캘이어야 합니다. 로캘은 나중에 변경할 수 없습니다. Speech CLI language 매개 변수는 JSON 요청 및 응답의 locale 속성에 해당합니다.
  • 필수 name 매개 변수를 설정합니다. 이 매개 변수는 Speech Studio에 표시되는 이름입니다. Speech CLI name 매개 변수는 JSON 요청 및 응답의 displayName 속성에 해당합니다.

다음은 테스트를 만드는 Speech CLI 명령의 예입니다.

spx csr evaluation create --api-version v3.2 --project 0198f569-cc11-4099-a0e8-9d55bc3d0c52 --dataset 23b6554d-21f9-4df1-89cb-f84510ac8d23 --model1 ff43e922-e3e6-4bf0-8473-55c08fd68048 --model2 13fb305e-09ad-4bce-b3a1-938c9124dda3 --name "My Evaluation" --description "My Evaluation Description"

응답 본문은 다음 형식으로 표시되어야 합니다.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": -1.0,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1,
    "wordErrorRate2": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1
  },
  "lastActionDateTime": "2024-07-14T21:31:14Z",
  "status": "NotStarted",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

응답 본문의 최상위 self 속성은 평가의 URI입니다. 이 URI를 사용하여 프로젝트 및 테스트 결과에 대한 세부 정보를 가져옵니다. 또한 이 URI를 사용하여 평가를 업데이트하거나 삭제합니다.

평가에 대한 Speech CLI 도움말을 보려면 다음 명령을 실행합니다.

spx help csr evaluation

테스트를 만들려면 음성 텍스트 변환 REST API평가_만들기 작업을 사용하세요. 다음 지침에 따라 요청 본문을 생성합니다.

  • project 속성을 기존 프로젝트의 URI로 설정합니다. 이 속성은 Speech Studio에서도 테스트를 볼 수 있도록 하기 위해 권장됩니다. Projects_List 요청을 수행하여 사용 가능한 프로젝트를 가져올 수 있습니다.
  • customProperties 내에서 testingKind 속성을 Evaluation으로 설정합니다. Evaluation을 지정하지 않으면 테스트가 품질 검사 테스트로 처리됩니다. testingKind 속성이 Evaluation 또는 Inspection으로 설정되거나 아예 설정되지 않은 경우에도 API를 통해 정확도 점수에 액세스할 수 있지만 Speech Studio에서는 이 점수에 액세스할 수 없습니다.
  • 필수 model1 속성을 테스트하려는 모델의 URI로 설정합니다.
  • 필수 model2 속성을 테스트하려는 다른 모델의 URI로 설정합니다. 두 모델을 비교하지 않으려면 model1model2 둘 다에 대해 동일한 모델을 사용합니다.
  • 필수 dataset 속성을 테스트에 사용할 데이터 세트의 URI로 설정합니다.
  • 필수 locale 속성을 설정합니다. 이 속성은 데이터 세트 콘텐츠의 로캘이어야 합니다. 로캘은 나중에 변경할 수 없습니다.
  • 필수 displayName 속성을 설정합니다. 이 속성은 Speech Studio에 표시되는 이름입니다.

다음 예제와 같이 URI를 사용하여 HTTP POST 요청을 만듭니다. YourSubscriptionKey를 Speech 리소스 키로 바꾸고, YourServiceRegion을 Speech 리소스 영역으로 바꾸고, 앞에서 설명한 대로 요청 본문 속성을 설정합니다.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  },
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations"

응답 본문은 다음 형식으로 표시되어야 합니다.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": -1.0,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1,
    "wordErrorRate2": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1
  },
  "lastActionDateTime": "2024-07-14T21:31:14Z",
  "status": "NotStarted",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

응답 본문의 최상위 self 속성은 평가의 URI입니다. 이 URI를 사용하여 평가의 프로젝트 및 테스트 결과에 대한 세부 정보를 가져옵니다. 또한 이 URI를 사용하여 평가를 업데이트하거나 삭제합니다.

테스트 결과 가져오기

테스트 결과를 가져와서 음성 인식 결과와 비교하여 WER(단어 오류율)을 평가해야 합니다.

다음 단계에 따라 테스트 결과를 얻습니다.

  1. Speech Studio에 로그인합니다.
  2. 사용자 지정 음성> 내 프로젝트 이름 >테스트 모델을 선택합니다.
  3. 테스트 이름으로 링크를 선택합니다.
  4. ‘성공’으로 설정된 상태로 테스트가 완료되면 테스트된 각 모델에 대한 WER 번호가 포함된 결과가 표시됩니다.

이 페이지에는 제출된 데이터 세트의 대화 내용 기록과 함께 데이터 세트의 모든 발화와 인식 결과가 나열됩니다. 삽입, 삭제 및 대체를 포함한 다양한 오류 유형을 전환할 수 있습니다. 오디오를 듣고 각 열의 인식 결과를 비교하면 요구 사항을 충족하는 모델 및 더 많은 학습 및 개선이 필요한 모델을 결정할 수 있습니다.

테스트 결과를 얻으려면 spx csr evaluation status 명령을 사용합니다. 다음 지침에 따라 요청 매개 변수를 생성합니다.

  • 필수 evaluation 매개 변수를 테스트 결과를 가져오려는 평가의 ID로 설정합니다.

테스트 결과를 가져오는 Speech CLI 명령의 예는 다음과 같습니다.

spx csr evaluation status --api-version v3.2 --evaluation 8bfe6b05-f093-4ab4-be7d-180374b751ca

오류율이라는 단어와 자세한 내용이 응답 본문에 반환됩니다.

응답 본문은 다음 형식으로 표시되어야 합니다.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": 0.028900000000000002,
    "sentenceErrorRate1": 0.667,
    "tokenErrorRate1": 0.12119999999999999,
    "sentenceCount1": 3,
    "wordCount1": 173,
    "correctWordCount1": 170,
    "wordSubstitutionCount1": 2,
    "wordDeletionCount1": 1,
    "wordInsertionCount1": 2,
    "tokenCount1": 165,
    "correctTokenCount1": 145,
    "tokenSubstitutionCount1": 10,
    "tokenDeletionCount1": 1,
    "tokenInsertionCount1": 9,
    "tokenErrors1": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    },
    "wordErrorRate2": 0.028900000000000002,
    "sentenceErrorRate2": 0.667,
    "tokenErrorRate2": 0.12119999999999999,
    "sentenceCount2": 3,
    "wordCount2": 173,
    "correctWordCount2": 170,
    "wordSubstitutionCount2": 2,
    "wordDeletionCount2": 1,
    "wordInsertionCount2": 2,
    "tokenCount2": 165,
    "correctTokenCount2": 145,
    "tokenSubstitutionCount2": 10,
    "tokenDeletionCount2": 1,
    "tokenInsertionCount2": 9,
    "tokenErrors2": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    }
  },
  "lastActionDateTime": "2024-07-14T21:31:22Z",
  "status": "Succeeded",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

평가에 대한 Speech CLI 도움말을 보려면 다음 명령을 실행합니다.

spx help csr evaluation

테스트 결과를 얻으려면 먼저 음성 텍스트 변환 REST API평가_가져오기 작업을 사용하세요.

다음 예제와 같이 URI를 사용하여 HTTP GET 요청을 만듭니다. YourEvaluationId를 평가 ID로 바꾸고, YourSubscriptionKey를 음성 리소스 키로 바꾸고, YourServiceRegion을 음성 리소스 지역으로 바꿉니다.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/YourEvaluationId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

오류율이라는 단어와 자세한 내용이 응답 본문에 반환됩니다.

응답 본문은 다음 형식으로 표시되어야 합니다.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": 0.028900000000000002,
    "sentenceErrorRate1": 0.667,
    "tokenErrorRate1": 0.12119999999999999,
    "sentenceCount1": 3,
    "wordCount1": 173,
    "correctWordCount1": 170,
    "wordSubstitutionCount1": 2,
    "wordDeletionCount1": 1,
    "wordInsertionCount1": 2,
    "tokenCount1": 165,
    "correctTokenCount1": 145,
    "tokenSubstitutionCount1": 10,
    "tokenDeletionCount1": 1,
    "tokenInsertionCount1": 9,
    "tokenErrors1": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    },
    "wordErrorRate2": 0.028900000000000002,
    "sentenceErrorRate2": 0.667,
    "tokenErrorRate2": 0.12119999999999999,
    "sentenceCount2": 3,
    "wordCount2": 173,
    "correctWordCount2": 170,
    "wordSubstitutionCount2": 2,
    "wordDeletionCount2": 1,
    "wordInsertionCount2": 2,
    "tokenCount2": 165,
    "correctTokenCount2": 145,
    "tokenSubstitutionCount2": 10,
    "tokenDeletionCount2": 1,
    "tokenInsertionCount2": 9,
    "tokenErrors2": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    }
  },
  "lastActionDateTime": "2024-07-14T21:31:22Z",
  "status": "Succeeded",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

WER(단어 오류율) 평가

모델 정확도를 측정하기 위한 업계 표준은 WER(단어 오류 비율)입니다. WER은 인식 도중 식별된 잘못된 단어 수를 센 다음, 합계를 휴먼 레이블 대화 기록에 제공된 총 단어 수로 나눕니다(N).

잘못 식별된 단어는 다음과 같은 세 가지 범주로 분류됩니다.

  • 삽입(I): 가설 대본에 잘못 추가된 단어
  • 삭제(D): 가설 대본에서 발견되지 않은 단어
  • 대체(S): 참조와 가설 사이에서 대체된 단어

Speech Studio에서 몫에 100을 곱하여 백분율로 표시됩니다. Speech CLI 및 REST API 결과에는 100을 곱하지 않습니다.

$$ WER = {{I+D+S}\over N} \times 100 $$

다음은 휴먼 레이블 대화 기록과 비교할 때 잘못 식별된 단어를 보여 주는 예제입니다.

잘못 식별된 단어의 예를 보여 주는 스크린샷

음성 인식 결과에는 다음과 같이 오류가 발생했습니다.

  • 삽입(I): "a"라는 단어가 추가되었습니다.
  • 삭제(D): "are"라는 단어가 삭제되었습니다.
  • 대체(S): "Jones" 단어가 "John"으로 대체되었습니다.

이전 예제의 단어 오류율은 60%입니다.

WER 측정을 로컬로 복제하려는 경우 NIST SCTK(채점 도구 키트)의 sclite 도구를 사용할 수 있습니다.

오류 해결 및 WER 향상

컴퓨터 인식 결과의 WER 계산을 사용하여 앱, 도구 또는 제품에서 사용하는 모델의 품질을 평가할 수 있습니다. 5~10%의 WER은 좋은 품질이고 사용할 준비가 된 것으로 간주됩니다. 20%의 WER은 허용 가능하지만 추가 학습을 고려해야 할 수도 있습니다. WER이 30% 이상인 경우 저하된 품질을 나타내며 사용자 지정 및 학습이 필요합니다.

오류가 어떻게 배포되는지는 중요합니다. 많은 삭제 오류가 발생한 경우 일반적으로 약한 오디오 신호 강도로 인한 것입니다. 이 문제를 해결하려면 오디오 데이터를 원본에 더 가깝게 수집해야 합니다. 삽입 오류는 오디오가 시끄러운 환경에서 녹음되고 혼선이 있을 수 있으므로 인식 문제가 발생했음을 의미합니다. 대체 오류는 도메인별 용어에 대한 샘플이 휴먼 레이블 대화 기록 또는 관련된 텍스트로 충분히 제공되지 않은 경우에 종종 발생합니다.

개별 파일을 분석하면 존재하는 오류 유형과 특정 파일에 고유한 오류를 확인할 수 있습니다. 파일 수준에서 문제를 이해하면 개선 사항을 찾는 데 도움이 됩니다.

TER(토큰 오류율) 평가

단어 오류율외에도 TER(토큰 오류율)의 확장된 측정값을 사용하여 최종 엔드투엔드 표시 형식에서 품질을 평가할 수도 있습니다. TER는 어휘 형식(that will cost nine hundred dollars 대신 That will cost $900.)외에도 문장 부호, 대문자 표시 및 ITN과 같은 표시 형식 측면을 고려합니다. 음성 텍스트 변환으로 출력 형식 표시에 대해 자세히 알아봅니다.

TER은 인식 도중 식별된 잘못된 토큰 수를 센 다음, 합계를 휴먼 레이블 대화 기록에 제공된 총 토큰 수(N)로 나눕니다.

$$ TER = {{I+D+S}\over N} \times 100 $$

TER 계산의 수식도 WER과 유사합니다. 유일한 차이점은 TER이 단어 수준 대신 토큰 수준에 따라 계산된다는 것입니다.

  • 삽입(I): 가설 대본에 잘못 추가된 토큰
  • 삭제(D): 가설 대본에서 감지되지 않은 토큰
  • 대체(S): 참조와 가설 사이에서 대체된 토큰

실제 사례에서는 WER 및 TER 결과를 모두 분석하여 원하는 향상된 기능을 얻을 수 있습니다.

참고 항목

TER를 측정하려면 오디오 + 대본 테스트 데이터에 문장 부호, 대문자 표시 및 ITN과 같은 표시 서식이 있는 대본이 포함되어 있는지 확인해야 합니다.

예 시나리오 결과

음성 인식 시나리오는 오디오 품질 및 언어(어휘 및 말하기 스타일)에 따라 달라집니다. 다음 표에서는 네 가지 일반적인 시나리오를 살펴봅니다.

시나리오 오디오 품질 단어의 말하기 스타일
콜 센터 낮음, 8kHz, 1개 오디오 채널에 2명의 사람이 있을 수 있음, 압축 가능 좁음, 도메인 및 제품에 한정 느슨하게 구조화된 대화형
음성 도우미(예: Cortana 또는 드라이브 스루 창) 높음, 16kHz 엔터티 많음(음악 제목, 제품, 위치) 명확하게 명시된 단어 및 구
받아쓰기(인스턴트 메시지, 메모, 검색) 높음, 16kHz 다양함 받아적기
비디오 선택 자막 다양함, 다양한 마이크 사용, 음악 추가 포함 다양함, 회의에서, 인용된 음성, 음악 가사 읽기, 준비되거나 느슨하게 구조화됨

시나리오마다 다른 품질 결과가 생성됩니다. 다음 표에서는 이러한 4가지 시나리오의 콘텐츠가 WER로 평가되는 방법을 검사합니다. 표에는 각 시나리오에서 가장 일반적으로 발생하는 오류 유형이 나와 있습니다. 삽입, 대체 및 삭제 오류율은 모델을 개선하기 위해 추가할 데이터 종류를 결정하는 데 도움이 됩니다.

시나리오 음성 인식 품질 삽입 오류 삭제 오류 대체 오류
콜 센터 중간
(30% 미만 WER)
낮음, 배경에서 다른 사람이 말하는 경우 제외 높을 수 있음. 콜 센터는 잡음이 있을 수 있으며 발표자가 겹쳐 모델을 혼동할 수 있습니다. 보통. 제품 및 사람의 이름을 통해 이러한 오류가 발생할 수 있습니다.
음성 도우미 높음
(10% 미만 WER일 수 있음)
낮음 낮음 중간, 곡 제목, 제품 이름 또는 위치로 인해
받아쓰기 높음
(10% 미만 WER일 수 있음)
낮음 낮음 높음
비디오 선택 자막 비디오 유형에 따라 다름(< 50% WER일 수 있음) 낮음 음악, 소음, 마이크 품질로 인해 높을 수 있음 전문 용어로 인해 이러한 오류가 발생할 수 있음

다음 단계