paint-brush
일반 영어의 자동 음성 인식을 위한 wav2vec2~에 의해@pictureinthenoise
715 판독값
715 판독값

일반 영어의 자동 음성 인식을 위한 wav2vec2

~에 의해 Picture in the Noise7m2024/03/13
Read on Terminal Reader

너무 오래; 읽다

wav2vec2는 자동 음성 인식(ASR) 시스템 설계를 위한 선도적인 기계 학습 모델입니다. 이는 기능 인코더, 양자화 모듈 및 변환기의 세 가지 일반 구성 요소로 구성됩니다. 이 모델은 기본 음성 단위를 학습하기 위해 오디오 전용 데이터로 사전 학습되었습니다. 그런 다음 음성 단위가 텍스트에 매핑되는 레이블이 지정된 데이터에 대해 모델을 미세 조정합니다.
featured image - 일반 영어의 자동 음성 인식을 위한 wav2vec2
Picture in the Noise HackerNoon profile picture

소개

자동 음성 인식("ASR") 영역에 발을 담그고 있었다면 Meta AI Research의 wav2vec 2.0("wav2vec2")을 접했을 가능성이 높습니다. 기계 학습("ML") 모델의 작동 방식을 설명하는 몇 가지 훌륭한 기술 리소스가 있으며 그 중 원본 wav2vec2 문서 자체도 있습니다. 또한 Meta AI Research 팀의 웹사이트에는 wav2vec2에 대한 훌륭한 개요가 있습니다.


학술 논문에 대한 훌륭한 요약을 제공하고 이 기사의 wav2vec2 모델 그림은 해당 페이지에서 가져온 것이므로 한 번 살펴보시기 바랍니다. 앞의 내용을 염두에 두고 wav2vec2를 "일반 영어"로 설명하는 글은 많지 않은 것 같습니다. 나는 이 글을 통해 바로 그 일을 하려고 노력한다.


이 문서에서는 귀하가 몇 가지 기본적인 ML 개념을 이해하고 있으며 잡초에 너무 깊이 들어가지 않고 높은 수준에서 wav2vec2가 작동하는 방식을 이해하는 데 관심이 있다고 가정합니다.


따라서 후속 섹션에서는 적절한 경우 간단한 설명과 유용한 비유를 선호하여 많은 기술적 세부 사항을 피하려고 노력합니다.


즉, wav2vec2가 Feature Encoder , Quantization ModuleTransformer 의 3가지 주요 구성 요소로 구성되어 있다는 것을 초기에 아는 것이 도움이 됩니다.


각각은 좀 더 복잡한(그러나 여전히 소화 가능한) 요점을 구축하면서 몇 가지 기본 아이디어로 토론을 시작하는 과정에서 논의될 것입니다. wav2vec2는 ASR 이외의 다른 목적으로도 사용될 수 있습니다.


즉, 여기에서는 ASR 관련 컨텍스트에서 모델을 논의합니다.

부드러운 개요

2020년 도입 당시 wav2vec2는 ASR 시스템 구축을 위한 새로운 프레임워크를 제공했습니다. 무엇이 그렇게 특별했나요? wav2vec2 이전에는 ASR 시스템은 일반적으로 레이블이 지정된 데이터를 사용하여 훈련되었습니다. 즉, 이전 모델은 예에 관련 전사가 있는 음성 오디오의 여러 예에 대해 훈련되었습니다. 아이디어를 설명하려면 다음 파형을 고려하십시오.


샘플 파형


이 파형을 보는 것만으로는 무엇을 나타내는지 완전히 명확하지 않습니다. 그러나 이 오디오를 생성한 화자가 "hello world"라는 단어를 말한 경우 파형의 어느 부분이 이를 나타내는 텍스트와 일치하는지 지능적으로 추측할 수 있습니다.


파형의 첫 번째 세그먼트가 "hello"라는 단어와 연관되어 있다고 추측할 수 있습니다. 마찬가지로 ASR 모델은 음성 오디오 파형 세그먼트와 서면 텍스트를 연결하는 방법을 학습할 수 있습니다.


그러나 원래 wav2vec2 조사관은 논문에서 "[많은] 음성 인식 시스템이 수용 가능한 성능에 도달하려면 수천 시간의 음성 녹음이 필요하며 이는 전 세계적으로 사용되는 거의 7,000개 언어 중 대다수에서는 사용할 수 없습니다."라고 지적했습니다.


그래서 wav2vec2 연구자들은 시스템을 훈련시키기 위해 "수천 시간의 음성 기록"이 필요하지 않은 새로운 모델을 발명했습니다. 그들은 유용한 인간 비유를 참조합니다. 아기는 단어를 듣고 즉시 해당 단어의 텍스트 표현을 보는 것으로 말하는 법을 배우지 않습니다 .


그들은 자신의 환경에 있는 사람들(예: 부모, 형제자매 등)의 말을 듣고 말의 표현을 배웁니다. wav2vec2는 유사한 방식으로 학습합니다. 먼저 듣기를 통해 학습합니다.


물론 이것이 어떻게 달성되는지가 이 기사에서 논의의 핵심입니다. wav2vec2는 광범위하게 다음 두 가지 작업을 수행 하도록 설계되었습니다.


  1. 레이블이 지정되지 않은 오디오 샘플을 음성 단위에 제공해야 하는지 알아보세요.


  2. 올바른 음성 단위를 예측합니다.


현 시점에서는 이러한 사항이 의미하는 바를 완전히 이해할 필요는 없습니다. 아래에서 설명하겠습니다. 지금은 머리 뒤쪽에 보관하십시오.

음성 단위 학습

예를 들어 일부 영어 사용자에 대해 엄청난 양의 오디오 샘플 데이터세트가 있다고 가정해 보세요. 음성학 에 대한 공식적인 배경 지식이 없더라도 영어가 "함께 연결되어" 단어, 문장 등을 형성하는 일련의 기본 소리를 사용하여 발성된다는 것을 직관적으로 이해할 수 있습니다.


물론, 당신이 영어를 구사하는 사람이라면 이런 식으로 말하는 것을 생각하지 않을 것이고 당신이 말하고 싶은 것이 무엇이든 당신의 발성은 어느 정도 자동적으로 나올 것입니다! 그러나 요점은 구어체 영어(실제로는 모든 구어체)가 더 기본적이고 개별적인 소리로 분해될 수 있다는 것입니다.


이러한 기본 소리를 "추출"하기 위해 ASR 모델을 어떻게든 동축할 수 있다면 이를 사용하여 음성 언어의 오디오 샘플을 인코딩 할 수 있습니다. 이는 wav2vec2가 오디오 데이터에 대한 사전 학습을 통해 수행하는 작업입니다.


이 맥락에서 사전 훈련은 주어진 오디오 데이터 세트에 대해 기본 사운드가 무엇인지 명시적으로 "알려주지" 않는 한 모델 훈련의 첫 번째 부분이 자체 감독 된다는 것을 의미합니다.


좀 더 자세히 살펴보면, 시스템은 수많은 오디오 전용 예제를 "공급"하고 이러한 예제에서 기본 음성 단위 세트를 학습할 수 있습니다.


따라서 모든 오디오 예제는 해당 음성 단위의 일부 조합으로 효과적으로 구성됩니다. 음성 오디오 샘플을 일련의 음소 로 나눌 수 있는 것과 같은 방식입니다.


중요한 점은 wav2vec2가 학습하는 기본 음성 단위가 음소보다 짧고 길이가 25밀리초라는 것입니다.


이 시점에서 발생하는 질문은 다음과 같습니다. wav2vec2는 오디오만으로 이러한 음성 단위를 어떻게 학습합니까?


음성 단위를 학습하는 과정은 Feature Encoder부터 시작됩니다. wav2vec2는 "다층 합성곱 신경망을 통해 음성 오디오를 인코딩합니다."


컨벌루션 신경망(CNN)은 사전에 명시적으로 식별되는 기능 없이 주어진 입력에서 기능을 학습할 수 있는 모델입니다.


CNN의 각 레이어는 입력에서 기능을 추출하는 것으로 생각할 수 있으며, 이러한 기능은 상위 레이어로 올라갈수록 점점 더 복잡해집니다.


오디오 데이터의 경우 오디오 정보 창을 검사하고 원시 사운드와 같은 낮은 수준의 특징을 추출하는 CNN의 첫 번째 레이어를 상상할 수 있습니다.


동일한 CNN의 이후 레이어는 이전 레이어에서 추출된 하위 수준 기능을 활용하여 음소에 가까운 소리와 같은 상위 수준 기능을 인코딩합니다.


이 아이디어에 따라 wav2vec2는 각 오디오 예제의 시간 조각을 기능 인코더에 전달하고 각 조각의 잠재 표현을 생성하여 "음성 단위에 레이블이 지정되지 않은 오디오 샘플을 제공해야 하는 내용을 학습" 할 수 있습니다.


wav2vec2 기능 인코더


그러나 잠재 표현 모음은 개별 음성 단위를 나타내지 않습니다. 이러한 표현은 어떤 방식으로든 분리되어야 합니다. 이는 Feature Encoder의 출력을 양자화 모듈 에 전달하여 수행됩니다.


wav2vec2 양자화 모듈


효과적으로, 양자화 모듈은 Feature Encoder에 의해 생성된 다양한 오디오 표현을 모두 가져와 유한한 음성 단위 세트로 줄입니다. 이 시점에서 wav2vec2를 단일 언어로 사전 학습해야 하는지 아니면 다양한 언어로 사전 학습해야 하는지 물어보는 것이 좋습니다.


Logic은 여러 언어에서 사용할 수 있는 ASR 시스템을 설계할 때 단일 언어보다 여러 언어를 나타내는 음성 단위를 캡처하는 것이 더 유용할 가능성이 높다고 말합니다.


이를 위해 다중 언어 오디오 샘플을 선택하여 wav2vec2를 사전 훈련하면 모델이 실제로 여러 언어를 캡처하는 음성 단위를 생성할 수 있습니다.


wav2vec2 다국어 양자화 잠재 음성 표현


wav2vec2 조사관은 "일부 언어의 경우 [오디오] 데이터조차 제한적"이기 때문에 이 접근 방식의 가치를 지적했습니다. 그들의 원래 연구 결과 는 "일부 단위는 특정 언어에만 사용되는 반면 다른 단위는 유사한 언어로 사용되며 때로는 매우 유사하지 않은 언어에서도 사용된다는 것"을 확인했습니다.

음성 단위 예측

음성 단위 목록은 음성 언어 오디오 샘플을 인코딩할 수 있는 첫 번째 단계입니다. 그러나 우리가 실제로 달성하고 싶은 것은 이러한 단위가 서로 어떻게 관련되어 있는지에 대해 wav2vec2를 훈련시키는 것입니다.


즉, 우리는 어떤 음성 단위가 서로 동일한 맥락 에서 발생할 가능성이 있는지 이해하고 싶습니다. wav2vec2는 Transformer 계층을 통해 이 작업을 처리합니다.


wav2vec2 변환기


Transformer를 사용하면 wav2vec2가 통계적 의미에서 음성 단위가 다양한 오디오 예제에 어떻게 배포되는지 학습할 수 있습니다. 이러한 이해를 통해 사전 학습 후 모델이 "볼" 오디오 샘플의 인코딩이 쉬워집니다.

미세 조정

궁극적으로 ASR 시스템은 이전에 "본" 적이 없는 특정 오디오 시퀀스에 대한 텍스트 전사를 생성할 수 있어야 합니다. 위에서 설명한 단계를 통해 사전 훈련한 후 wav2vec2는 이 목적에 맞게 미세 조정 됩니다. 이번에는 모델에 오디오 샘플 및 관련 녹음본의 예가 명시적으로 표시됩니다.


이 시점에서 모델은 사전 훈련 중에 학습한 내용을 활용하여 오디오 샘플을 음성 단위 시퀀스로 인코딩하고 이러한 음성 단위 시퀀스를 전사를 나타내는 어휘의 개별 문자(예: 문자 "a"에서 "")에 매핑할 수 있습니다. z"(영어의 경우).


미세 조정 중 학습을 통해 wav2vec2 모델의 학습이 완료되고 미세 조정 중 학습의 일부가 아닌 새로운 오디오 예제에 대한 텍스트를 예측할 수 있습니다.

결론

물론, wav2vec2의 하위 수준 메커니즘은 위에 제시된 것보다 훨씬 더 복잡합니다. 그러나 다시 한번 말씀드리지만, 이 기사의 목적은 모델이 작동하는 방식과 훈련되는 방식에 대한 간단하고 개념적인 이해를 제공하는 것입니다.


wav2vec2는 ASR 시스템 구축을 위한 매우 강력한 ML 프레임워크이며, 2021년 후반에 도입된 XLS-R 변형은 128개 언어로 교육되어 여러 언어에 걸쳐 ASR 모델을 설계하기 위한 향상된 플랫폼을 제공합니다.


소개에서 언급했듯이, 자세한 내용을 배우는 데 도움이 되는 뛰어난 기술 리소스가 많이 있습니다. 특히 Hugging Face 에서 제공하는 기능이 특히 유용할 수 있습니다.