-
Notifications
You must be signed in to change notification settings - Fork 100
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #94 from gabrielwithappy/translation_ko_chap3
π [i18n-KO] docs: ko: Chap3 Transformer architectures for audio
- Loading branch information
Showing
7 changed files
with
491 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# μ€λμ€ λΆλ₯ μν€ν μ²[[audio-classification-architectures]] | ||
|
||
μ€λμ€ λΆλ₯μ λͺ©νλ μ€λμ€ μ λ ₯μ λν ν΄λμ€ λ μ΄λΈμ μμΈ‘νλ κ²μ λλ€. λͺ¨λΈμ μ 체 μ λ ₯ μνμ€λ₯Ό ν¬κ΄νλ λ¨μΌ ν΄λμ€ λ μ΄λΈμ μμΈ‘νκ±°λ λͺ¨λ μ€λμ€ νλ μ(μΌλ°μ μΌλ‘ μ λ ₯ μ€λμ€μ 20λ°λ¦¬μ΄λ§λ€)μ λν λ μ΄λΈμ μμΈ‘ν μ μμΌλ©°, μ΄ κ²½μ° λͺ¨λΈμ μΆλ ₯μ ν΄λμ€ λ μ΄λΈ νλ₯ μ μνμ€μ λλ€. μ μμ μλ‘λ μ΄λ€ μκ° νΉμ μ리λ₯Ό λ΄λμ§ κ°μ§νλ κ²μ λ€ μ μκ³ , νμμ μλ‘λ νΉμ μκ°μ μ΄λ€ νμκ° λ§νλμ§ μμΈ‘νλ νμ ꡬλΆ(speaker diarization)μ λ€ μ μμ΅λλ€. | ||
|
||
## μ€ννΈλ‘κ·Έλ¨μ μ¬μ©ν λΆλ₯[[classification-using-spectrograms]] | ||
|
||
μ€λμ€ λΆλ₯λ₯Ό μννλ κ°μ₯ μ¬μ΄ λ°©λ² μ€ νλλ μ΄λ―Έμ§ λΆλ₯ λ¬Έμ μΈ κ²μ²λΌ κ°μ νλ κ²μ λλ€! | ||
|
||
μ€ννΈλ‘κ·Έλ¨μ `(μ£Όνμ, μνμ€ κΈΈμ΄)` λͺ¨μμ 2μ°¨μ ν μλΌλ κ²μ κΈ°μ΅νμΈμ. [μ€λμ€ λ°μ΄ν° μ±ν°](../chapter1/audio_data)μμ μ΄λ¬ν μ€ννΈλ‘κ·Έλ¨μ μ΄λ―Έμ§λ‘ κ·Έλ €λ³΄μμ΅λλ€. μ¬λ¬λΆ μμλμ? λ§ κ·Έλλ‘ μ€ννΈλ‘κ·Έλ¨μ μ΄λ―Έμ§λ‘ μ·¨κΈνκ³ ResNetκ³Ό κ°μ μΌλ° CNN λΆλ₯κΈ° λͺ¨λΈμ μ λ¬νλ©΄ λ§€μ° μ’μ μμΈ‘ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. λ μ’μ λ°©λ²μ ViTμ κ°μ μ΄λ―Έμ§ νΈλμ€ν¬λ¨Έ λͺ¨λΈμ μ¬μ©νλ κ²μ λλ€. | ||
|
||
μ΄κ²μ΄ λ°λ‘ **μ€λμ€ μ€ννΈλ‘κ·Έλ¨ νΈλμ€ν¬λ¨Έ**κ° νλ μΌμ λλ€. μ΄ λͺ¨λΈμ ViT λλ λΉμ νΈλμ€ν¬λ¨Έ λͺ¨λΈμ μ¬μ©νλ©°, μΌλ° μ΄λ―Έμ§ λμ μ€ννΈλ‘κ·Έλ¨μ μ λ ₯μΌλ‘ μ λ¬ν©λλ€. νΈλμ€ν¬λ¨Έμ μ ν μ΄ν μ λ μ΄μ΄ λλΆμ μ΄ λͺ¨λΈμ CNNλ³΄λ€ κΈλ‘λ² μ»¨ν μ€νΈλ₯Ό λ μ ν¬μ°©ν μ μμ΅λλ€. | ||
|
||
ViTμ λ§μ°¬κ°μ§λ‘ AST(Audio Spectrogram Transformer) λͺ¨λΈμ μ€λμ€ μ€ννΈλ‘κ·Έλ¨μ 16Γ16ν½μ μ λΆλΆμ μΌλ‘ κ²ΉμΉλ μ΄λ―Έμ§ ν¨μΉ μνμ€λ‘ λΆν ν©λλ€. κ·Έλ° λ€μ μ΄ ν¨μΉ μνμ€λ μΌλ ¨μ μλ² λ©μΌλ‘ ν¬μλκ³ , μ΄ μλ² λ©μ νμμ κ°μ΄ νΈλμ€ν¬λ¨Έ μΈμ½λμ μ λ ₯μΌλ‘ μ 곡λ©λλ€. ASTλ μΈμ½λ μ μ© νΈλμ€ν¬λ¨Έ λͺ¨λΈμ΄λ―λ‘ μΆλ ₯μ 16Γ16 μ λ ₯ ν¨μΉλ§λ€ νλμ© μ¨κ²¨μ§ μν μνμ€μ λλ€. μ¬κΈ°μλ μλ μνλ₯Ό λΆλ₯ νλ₯ μ 맀ννκΈ° μν΄ μκ·Έλͺ¨μ΄λ νμ±νκ° ν¬ν¨λ κ°λ¨ν λΆλ₯ κ³μΈ΅μ΄ μμ΅λλ€. | ||
|
||
<div class="flex justify-center"> | ||
<img src="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/ast.png" alt="μ€λμ€ μ€ννΈλ‘κ·Έλ¨ νΈλμ€ν¬λ¨Έλ μ€ννΈλ‘κ·Έλ¨μμ κ°μ Έμ¨ μΌλ ¨μ ν¨μΉμμ μλν©λλ€."> | ||
</div> | ||
|
||
λ Όλ¬Έ [AST: μ€λμ€ μ€ννΈλ‘κ·Έλ¨ νΈλμ€ν¬λ¨Έ](https://arxiv.org/pdf/2104.01778.pdf)μμ κ°μ Έμ¨ μ΄λ―Έμ§ | ||
|
||
<Tip> | ||
π‘ μ¬κΈ°μλ μ€ννΈλ‘κ·Έλ¨μ΄ μ΄λ―Έμ§μ λμΌνλ€κ³ κ°μ νμ§λ§, μ€μν μ°¨μ΄μ μ΄ μμ΅λλ€. μλ₯Ό λ€μ΄, μ΄λ―Έμ§μ λ΄μ©μ μμλλ‘ μ΄λν΄λ μΌλ°μ μΌλ‘ μ΄λ―Έμ§μ ν¬ν¨λ λ΄μ©μ μλ―Έλ λ³νμ§ μμ΅λλ€. κ·Έλ¬λ μ€ννΈλ‘κ·Έλ¨μ μμλλ‘ μ΄λνλ©΄ μ리μ ν¬ν¨λ μ£Όνμκ° λ³κ²½λμ΄ μ리μ μ±κ²©μ΄ μμ ν λ¬λΌμ§λλ€. μ΄λ―Έμ§λ λ³ν μμλ λ³νμ§ μμ§λ§ μ€ννΈλ‘κ·Έλ¨μ κ·Έλ μ§ μμ΅λλ€. μ€ννΈλ‘κ·Έλ¨μ μ΄λ―Έμ§λ‘ μ·¨κΈνλ κ²μ μ€μ λ‘λ λ§€μ° μ μλν μ μμ§λ§ μ€μ λ‘λ κ°μ κ²μ΄ μλλΌλ μ μ λͺ μ¬νμΈμ. | ||
</Tip> | ||
|
||
## λͺ¨λ νΈλμ€ν¬λ¨Έλ λΆλ₯κΈ°κ° λ μ μμ΅λλ€.[[any-transformer-can-be-a-classifier]] | ||
|
||
[μ΄μ μΉμ ](ctc)μμ CTCκ° μΈμ½λ μ μ© νΈλμ€ν¬λ¨Έλ₯Ό μ¬μ©νμ¬ μλ μμ± μΈμμ μννλ λ° ν¨μ¨μ μΈ κΈ°μ μ΄λΌλ κ²μ μ΄ν΄λ³΄μμ΅λλ€. μ΄λ¬ν CTC λͺ¨λΈμ μ΄λ―Έ ν ν°ν μ΄νμμ ν΄λμ€ λ μ΄λΈμ λν νλ₯ μ μμΈ‘νλ λΆλ₯κΈ°μ λλ€. λΌλ²¨μ λ³κ²½νκ³ νΉμν CTC μμ€ λμ ν¬λ‘μ€ μνΈλ‘νΌ μμ€ ν¨μλ‘ νλ ¨νλ©΄ CTC λͺ¨λΈμ λ²μ© μ€λμ€ λΆλ₯κΈ°λ‘ μ νν μ μμ΅λλ€. | ||
|
||
μλ₯Ό λ€μ΄, HF νΈλμ€ν¬λ¨Έμλ `Wav2Vec2ForCTC` λͺ¨λΈλΏλ§ μλλΌ `Wav2Vec2ForSequenceClassification` λ° `Wav2Vec2ForAudioFrameClassification` λͺ¨λΈλ μμ΅λλ€. μ΄λ¬ν λͺ¨λΈμ μν€ν μ² κ°μ μ μΌν μ°¨μ΄μ μ λΆλ₯ κ³μΈ΅μ ν¬κΈ°μ μ¬μ©λλ μμ€ ν¨μμ λλ€. | ||
|
||
μ€μ λ‘ λͺ¨λ μΈμ½λ μ μ© μ€λμ€ νΈλμ€ν¬λ¨Έ λͺ¨λΈμ μλ μν μνμ€ μμ λΆλ₯ λ μ΄μ΄λ₯Ό μΆκ°νμ¬ μ€λμ€ λΆλ₯κΈ°λ‘ μ νν μ μμ΅λλ€. (λΆλ₯κΈ°μλ μΌλ°μ μΌλ‘ νΈλμ€ν¬λ¨Έ λμ½λκ° νμνμ§ μμ΅λλ€.) | ||
|
||
μ 체 μνμ€μ λν λ¨μΌ λΆλ₯ μ μλ₯Ό μμΈ‘νκΈ° μν΄ λͺ¨λΈ(Wav2Vec2ForSequenceClassification)μμλ μ¨κ²¨μ§ μνμ νκ· μ ꡬνμ¬ λΆλ₯ λ μ΄μ΄μ μ λ ₯ν©λλ€. μΆλ ₯μ λ¨μΌ νλ₯ λΆν¬μ λλ€. | ||
|
||
κ° μ€λμ€ νλ μμ λν΄ λ³λμ λΆλ₯λ₯Ό λ§λ€κΈ° μν΄, λΆλ₯κΈ°(Wav2Vec2ForAudioFrameClassification)λ μλ μνμ μνμ€μμ μ€νλλ―λ‘ λΆλ₯κΈ°μ μΆλ ₯λ μνμ€μ λλ€. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
# CTC μν€ν μ² [[ctc-architectures]] | ||
|
||
μ°κ²°μ£Όμ μκ° λΆλ₯(CTC, Connectionist Temporal Classification)λ μλ μμ± μΈμμ μν μΈμ½λ μ μ© νΈλμ€ν¬λ¨Έ λͺ¨λΈμ μ¬μ©λλ κΈ°λ²μ λλ€. μ΄λ¬ν λͺ¨λΈμ μλ‘λ **Wav2Vec2**, **HuBERT** λ° **M-CTC-T**κ° μμ΅λλ€. | ||
|
||
μΈμ½λ μ μ© νΈλμ€ν¬λ¨Έλ λͺ¨λΈμ μΈμ½λ λΆλΆλ§ μ¬μ©νκΈ° λλ¬Έμ κ°μ₯ κ°λ¨ν μ’ λ₯μ νΈλμ€ν¬λ¨Έμ λλ€. μΈμ½λλ μ λ ₯ μνμ€(μ€λμ€ νν)λ₯Ό μ½κ³ μ΄λ₯Ό μΆλ ₯ μλ² λ©μ΄λΌκ³ λ νλ μλ μν μνμ€λ‘ 맀νν©λλ€. | ||
|
||
CTC λͺ¨λΈμ μ¬μ©νλ©΄ μλ μν μνμ€μ μΆκ° μ ν 맀νμ μ μ©νμ¬ ν΄λμ€ λ μ΄λΈ μμΈ‘μ μ»μ΅λλ€. ν΄λμ€ λ μ΄λΈμ **μνλ²³ λ¬Έμ**(a, b, c, ...)μ λλ€. μ΄λ κ² νλ©΄ μ΄νκ° 26μμ λͺ κ°μ νΉμ ν ν°μΌλ‘λ§ μ‘΄μ¬νλ©΄ λκΈ° λλ¬Έμ μμ λΆλ₯ ν€λλ‘ λμ μΈμ΄μ λͺ¨λ λ¨μ΄λ₯Ό μμΈ‘ν μ μμ΅λλ€. | ||
|
||
<div class="flex justify-center"> | ||
<img src="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/wav2vec2-ctc.png" alt="Transformer encoder with a CTC head on top"> | ||
</div> | ||
|
||
μ§κΈκΉμ§λ NLPμμ BERTμ κ°μ λͺ¨λΈμ μ¬μ©νλ κ²κ³Ό λ§€μ° μ μ¬ν©λλ€. μΈμ½λ μ μ© νΈλμ€ν¬λ¨Έ λͺ¨λΈμ΄ ν μ€νΈ ν ν°μ μΈμ½λ μ¨κ²¨μ§ μν μνμ€μ 맀νν λ€μ μ ν 맀νμ μ μ©νμ¬ κ° μ¨κ²¨μ§ μνμ λν΄ νλμ ν΄λμ€ λ μ΄λΈ μμΈ‘μ μ»μ΅λλ€. | ||
|
||
μμ±μμλ μ€λμ€ μ λ ₯κ³Ό ν μ€νΈ μΆλ ₯μ 'μ λ ¬(alignment)'μ μ μ μλ€λ μ μ΄ λ¬Έμ μ λλ€. μμ±μ΄ λ§νλ μμμ ν μ€νΈλ₯Ό νμ¬(transcribe)νλ μμκ° κ°λ€λ κ²μ μμ§λ§(μμ λ¨μ‘°λ‘μ΄ μ λ ¬μ κ²½μ°), νμ¬νλ ν μ€νΈμ λ¬Έμκ° μ€λμ€μ μ΄λ»κ² μΌμΉνλμ§λ μ μ μμ΅λλ€. λ°λ‘ μ΄ λΆλΆμμ CTC μκ³ λ¦¬μ¦μ΄ λ±μ₯ν©λλ€. | ||
|
||
<Tip> | ||
π‘ NLP λͺ¨λΈμμ μ΄νλ μΌλ°μ μΌλ‘ κ°λ³ λ¬ΈμλΏλ§ μλλΌ λ¨μ΄μ μΌλΆ λλ μμ ν λ¨μ΄λ₯Ό μ€λͺ νλ μμ² κ°μ ν ν°μΌλ‘ ꡬμ±λ©λλ€. κ·Έλ¬λ CTCμ κ²½μ° μμ μ΄νκ° κ°μ₯ ν¨κ³Όμ μ΄λ©° μΌλ°μ μΌλ‘ 50μ λ―Έλ§μΌλ‘ μ μ§νλ €κ³ λ Έλ ₯ν©λλ€. νΈμν°μμλ κΈμμ λμλ¬Έμλ₯Ό ꡬλΆνμ§ μμΌλ―λ‘ λλ¬Έμ(λλ μλ¬Έμ)λ§ μ¬μ©ν΄λ μΆ©λΆν©λλ€. μ«μλ μ² μλ‘ νκΈ°ν©λλ€(μ: `"20"`μ `"twenty"`κ° λ©λλ€). λ¬Έμ μΈμλ μ΅μν λ¨μ΄ κ΅¬λΆ ν ν°(곡백)κ³Ό ν¨λ© ν ν°μ΄ νμν©λλ€. ν¨λ© ν ν°μ μμ°μ΄ μ²λ¦¬ λͺ¨λΈκ³Ό λ§μ°¬κ°μ§λ‘ μ¬λ¬ κ°μ μλ¬Έμ μΌκ΄μ μΌλ‘ κ²°ν©ν μ μκ² ν΄μ£Όμ§λ§, λͺ¨λΈμ΄ 무μμ μμΈ‘ν λ μ¬μ©νλ ν ν°μ΄κΈ°λ ν©λλ€. μμ΄μμλ `'` λ¬Έμλ₯Ό μ μ§νλ κ²λ μ μ©ν©λλ€. `it`s`μ `its`λ λ§€μ° λ€λ₯Έ μλ―Έλ₯Ό κ°κΈ° λλ¬Έμ λλ€. | ||
</Tip> | ||
|
||
## μ λ ¬μ μ΄λ»κ² νμΈνμ§?[[dude-wheres-my-alignment]] | ||
|
||
μλ μμ± μΈμ(ASR)μ μ€λμ€λ₯Ό μ λ ₯μΌλ‘ λ°μ ν μ€νΈλ₯Ό μΆλ ₯μΌλ‘ μμ±ν©λλ€. ν μ€νΈλ₯Ό μμΈ‘νλ λ°©λ²μλ λͺ κ°μ§ μ νμ§κ° μμ΅λλ€: | ||
|
||
- κ°λ³ λ¬Έμλ‘ μΈμ | ||
- μμ(phonemes)λ‘ μΈμ | ||
- λ¨μ΄ ν ν°μΌλ‘ μΈμ | ||
|
||
μλ μμ± μΈμ λͺ¨λΈμ `(μ€λμ€, ν μ€νΈ)` μμΌλ‘ ꡬμ±λ λ°μ΄ν° μ μ λν΄ νμ΅λλ©°, ν μ€νΈλ μ€λμ€ νμΌμ μ¬λμ΄ λ§λ νμ¬λ³Έμ λλ€. μΌλ°μ μΌλ‘ λ°μ΄ν° μ μλ μ€λμ€ νμΌμμ μ΄λ€ λ¨μ΄λ μμ μ΄ μ΄λμ λμ€λμ§ μλ €μ£Όλ νμ΄λ° μ λ³΄κ° ν¬ν¨λμ§ μμ΅λλ€. νλ ¨ μ€μ νμ΄λ° μ 보μ μμ‘΄ν μ μκΈ° λλ¬Έμ μ λ ₯κ³Ό μΆλ ₯ μμλ₯Ό μ΄λ»κ² μ λ ¬ν΄μΌ νλμ§ μ μ μμ΅λλ€. | ||
|
||
μ λ ₯μ΄ 1μ΄μ§λ¦¬ μ€λμ€ νμΌμ΄λΌκ³ κ°μ ν΄ λ΄ μλ€. **Wav2Vec2** λͺ¨λΈμμλ λ¨Όμ CNN νΌμ² μΈμ½λλ₯Ό μ¬μ©νμ¬ μ€λμ€ μ λ ₯μ λ 짧μ μλ μν μνμ€λ‘ λ€μ΄μνλ§νλλ°, μ¬κΈ°μλ μ€λμ€ 20λ°λ¦¬μ΄λΉ νλμ μλ μν 벑ν°κ° μμ΅λλ€. μ€λμ€ 1μ΄μ λν΄ 50κ°μ μλ μν μνμ€λ₯Ό νΈλμ€ν¬λ¨Έ μΈμ½λλ‘ μ λ¬ν©λλ€. (μ λ ₯ μνμ€μμ μΆμΆλ μ€λμ€ μΈκ·Έλ¨ΌνΈλ λΆλΆμ μΌλ‘ κ²ΉμΉλ―λ‘ 20λ°λ¦¬μ΄λ§λ€ νλμ μλ μν 벑ν°κ° μΆλ ₯λμ§λ§ κ° μλ μνλ μ€μ λ‘ 25λ°λ¦¬μ΄μ μ€λμ€λ₯Ό λνλ λλ€.) | ||
|
||
νΈλμ€ν¬λ¨Έ μΈμ½λλ μ΄λ¬ν μ¨κ²¨μ§ μν κ°κ°μ λν΄ νλμ νΉμ§ ννμ μμΈ‘νλ―λ‘ νΈλμ€ν¬λ¨Έλ‘λΆν° 50κ°μ μΆλ ₯ μνμ€λ₯Ό μμ ν©λλ€. μ΄λ¬ν κ° μΆλ ₯μ μ°¨μμ 768μ λλ€. λ°λΌμ μ΄ μμ μμ νΈλμ€ν¬λ¨Έ μΈμ½λμ μΆλ ₯ μνμ€λ `(768, 50)` λͺ¨μμ κ°μ΅λλ€. μ΄λ¬ν κ° μμΈ‘μ μμ μ§μ μκ°λ³΄λ€ 짧μ 25msμ μκ°μ ν¬ν¨νλ―λ‘ μ 체 λ¨μ΄κ° μλ κ°λ³ μμ λλ λ¬Έμλ₯Ό μμΈ‘νλ κ²μ΄ ν©λ¦¬μ μ λλ€. CTCλ μμ μ΄νμμ κ°μ₯ μ μλνλ―λ‘ λ¬Έμλ₯Ό μμΈ‘ν΄ λ³΄κ² μ΅λλ€. | ||
|
||
<div class="flex justify-center"> | ||
<img src="https://huggingface.co/datasets/huggingface-course/audio-course-images/resolve/main/cnn-feature-encoder.png" alt="The audio waveform gets mapped to a shorter sequence of hidden-states"> | ||
</div> | ||
|
||
ν μ€νΈ μμΈ‘μ μν΄ 768μ°¨μ μΈμ½λ μΆλ ₯ κ°κ°μ μ ν λ μ΄μ΄("CTC ν€λ")λ₯Ό μ¬μ©νμ¬ λ¬Έμ λ μ΄λΈμ 맀νν©λλ€. κ·Έλ° λ€μ λͺ¨λΈμ λ‘κ·Έλ₯Ό ν¬ν¨νλ `(50, 32)` ν μ(μ¬κΈ°μ 32λ μ΄νμ ν ν° μ)λ₯Ό μμΈ‘ν©λλ€. μνμ€μ κ° νΉμ§μ λν΄ νλμ μμΈ‘μ μννλ―λ‘ μ€λμ€μ κ° μ΄μ λν΄ μ΄ 50κ°μ λ¬Έμλ₯Ό μμΈ‘νκ² λ©λλ€. | ||
|
||
κ·Έλ¬λ λ¨μν 20msλ§λ€ ν λ¬Έμλ₯Ό μμΈ‘νλ€λ©΄ μΆλ ₯ μνμ€λ λ€μκ³Ό κ°μ΄ λ³΄μΌ μ μμ΅λλ€: | ||
|
||
```text | ||
BRIIONSAWWSOMEETHINGCLOSETOPANICONHHISOPPONENT'SSFAACEWHENTHEMANNFINALLLYRREECOGGNNIIZEDHHISSERRRRORR ... | ||
``` | ||
|
||
μμΈν 보면 μμ΄μ λ€μ λΉμ·νμ§λ§ λ§μ λ¬Έμκ° μ€λ³΅λμ΄ μμ΅λλ€. μ΄λ λͺ¨λΈμ΄ μ λ ₯ μνμ€μ μ€λμ€ 20λ°λ¦¬μ΄λ§λ€ *μ΄λ€ κ²*μ μΆλ ₯ν΄μΌ νκΈ° λλ¬Έμ΄λ©°, ν λ¬Έμκ° 20λ°λ¦¬μ΄λ³΄λ€ κΈ΄ κΈ°κ°μ κ±Έμ³ λΆμ°λμ΄ μμΌλ©΄ μΆλ ₯μ μ¬λ¬ λ² λνλκ² λ©λλ€. νΉν νλ ¨ μ€μλ λλ³Έμ νμ΄λ°μ μ μ μκΈ° λλ¬Έμ μ΄λ₯Ό νΌν λ°©λ²μ΄ μμ΅λλ€. CTCλ μ΄λ¬ν μ€λ³΅μ νν°λ§νλ λ°©λ²μ λλ€. | ||
|
||
(μ€μ λ‘ μμΈ‘λ μνμ€μλ λͺ¨λΈμ΄ μλ¦¬κ° λ¬΄μμ λνλ΄λμ§ μ λͺ¨λ₯Ό λλ λ¬Έμ μ¬μ΄μ λΉ κ³΅κ°μ μν λ§μ ν¨λ© ν ν°λ ν¬ν¨λμ΄ μμ΅λλ€. λͺ νμ±μ μν΄ μμ μμ μ΄λ¬ν ν¨λ© ν ν°μ μ κ±°νμ΅λλ€. μ€λμ€ μΈκ·Έλ¨ΌνΈκ° λΆλΆμ μΌλ‘ κ²ΉμΉλ κ²λ μΆλ ₯μμ λ¬Έμκ° μ€λ³΅λλ λ λ€λ₯Έ μ΄μ μ λλ€.) | ||
|
||
## CTC μκ³ λ¦¬μ¦[[the-ctc-algorithm]] | ||
|
||
CTC μκ³ λ¦¬μ¦μ ν΅μ¬μ νν **곡백 ν ν°**μ΄λΌκ³ λΆλ¦¬λ νΉμ ν ν°μ μ¬μ©νλ κ²μ λλ€. μ΄κ²μ λͺ¨λΈμ΄ μμΈ‘νλ λ λ€λ₯Έ ν ν°μ΄λ©° μ΄νμ μΌλΆμ λλ€. μ΄ μμμμ λΉ ν ν°μ `_`λ‘ νμλ©λλ€. μ΄ νΉμ ν ν°μ λ¬Έμ κ·Έλ£Ή κ°μ μ격ν κ²½κ³ μν μ ν©λλ€. | ||
|
||
CTC λͺ¨λΈμ μ 체 μΆλ ₯μ λ€μκ³Ό κ°μ μ μμ΅λλ€: | ||
|
||
```text | ||
B_R_II_O_N_||_S_AWW_|||||_S_OMEE_TH_ING_||_C_L_O_S_E||TO|_P_A_N_I_C_||_ON||HHI_S||_OP_P_O_N_EN_T_'SS||_F_AA_C_E||_W_H_EN||THE||M_A_NN_||||_F_I_N_AL_LL_Y||||_RREE_C_O_GG_NN_II_Z_ED|||HHISS|||_ER_RRR_ORR|||| | ||
``` | ||
|
||
ν ν° `|`λ λ¨μ΄ κ΅¬λΆ λ¬Έμμ λλ€. μ΄ μμμλ 곡백 λμ `|`λ₯Ό μ¬μ©νμ¬ λ¨μ΄ λλκΈ° μμΉλ₯Ό λ μ½κ² νμ ν μ μλλ‘ νμ§λ§ λμΌν μ©λλ‘ μ¬μ©λ©λλ€. | ||
|
||
CTC 곡백 λ¬Έμλ₯Ό μ¬μ©νλ©΄ μ€λ³΅ λ¬Έμλ₯Ό νν°λ§ν μ μμ΅λλ€. μλ₯Ό λ€μ΄ μμΈ‘λ μνμ€μ λ§μ§λ§ λ¨μ΄μΈ `_ER_RRR_ORR`μ μ΄ν΄λ΄ μλ€. CTC 곡백 ν ν°μ΄ μμΌλ©΄ μ΄ λ¨μ΄λ λ€μκ³Ό κ°μ΄ 보μ λλ€: | ||
|
||
```text | ||
ERRRRORR | ||
``` | ||
|
||
λ¨μν μ€λ³΅λ λ¬Έμλ₯Ό μ κ±°νλ©΄ `EROR`μ΄ λ©λλ€. μ΄λ λΆλͺ μ¬λ°λ₯Έ μ² μκ° μλλλ€. νμ§λ§ CTC λΉ ν ν°μ μ¬μ©νλ©΄ κ° κ·Έλ£Ήμμ μ€λ³΅μ μ κ±°ν μ μμ΅λλ€. λ°λΌμ: | ||
|
||
```text | ||
_ER_RRR_ORR | ||
``` | ||
|
||
λ μλμ κ°μ΄ λ³κ²½λ©λλ€.: | ||
|
||
```text | ||
_ER_R_OR | ||
``` | ||
|
||
μ΄μ `_` λΉ ν ν°μ μ κ±°νμ¬ μ΅μ’ λ¨μ΄λ₯Ό μ»μ΅λλ€: | ||
|
||
```text | ||
ERROR | ||
``` | ||
|
||
μ΄ λ Όλ¦¬λ₯Ό `|`λ₯Ό ν¬ν¨ν μ 체 ν μ€νΈμ μ μ©νκ³ λ¨μ `|` λ¬Έμλ₯Ό 곡백μΌλ‘ λ°κΎΈλ©΄ μ΅μ’ CTC λμ½λ©λ μΆλ ₯μ λ€μκ³Ό κ°μ΅λλ€: | ||
|
||
```text | ||
BRION SAW SOMETHING CLOSE TO PANIC ON HIS OPPONENT'S FACE WHEN THE MAN FINALLY RECOGNIZED HIS ERROR | ||
``` | ||
|
||
μμ½νμλ©΄, λͺ¨λΈμ μ λ ₯ ννμμ (λΆλΆμ μΌλ‘ κ²ΉμΉλ) μ€λμ€μ 20msλ§λ€ νλμ ν ν°(λ¬Έμ)μ μμΈ‘ν©λλ€. μ΄λ‘ μΈν΄ λ§μ μ€λ³΅μ΄ λ°μν©λλ€. CTC λΉ ν ν° λλΆμ λ¨μ΄μ μ¬λ°λ₯Έ μ² μλ₯Ό νκ΄΄νμ§ μκ³ λ μ΄λ¬ν μ€λ³΅μ μ½κ² μ κ±°ν μ μμ΅λλ€. μ΄λ μΆλ ₯ ν μ€νΈλ₯Ό μ λ ₯ μ€λμ€μ μ λ ¬νλ λ¬Έμ λ₯Ό ν΄κ²°νλ λ§€μ° κ°λ¨νκ³ νΈλ¦¬ν λ°©λ²μ λλ€. | ||
|
||
<Tip> | ||
π‘ μ€μ Wav2Vec2 λͺ¨λΈμμ CTC λΉ ν ν°μ ν¨λ© ν ν° `<pad>`μ λμΌν©λλ€. μ΄ λͺ¨λΈμ μλ₯Ό λ€μ΄ νμ¬ 20msμ μ€λμ€μ λν΄ μμΈ‘ν λͺ νν λ¬Έμκ° μλ κ²½μ°μ κ°μ΄ μ΄λ¬ν `<pad>` ν ν°μ λ§μ΄ μμΈ‘ν©λλ€. ν¨λ©μ CTC 곡백(blanking)κ³Ό λμΌν ν ν°μ μ¬μ©νλ©΄ λμ½λ© μκ³ λ¦¬μ¦μ΄ λ¨μνλκ³ μ΄νλ₯Ό μκ² μ μ§νλ λ° λμμ΄ λ©λλ€. | ||
</Tip> | ||
|
||
μΈμ½λμ μΆλ ₯ μνμ€κ° μ΄νμ μν₯ νΉμ§μ ν¬μνλ μ ν λ μ΄μ΄λ‘ μ΄λνκΈ° λλ¬Έμ νΈλμ€ν¬λ¨Έ μΈμ½λ λͺ¨λΈμ CTCλ₯Ό μΆκ°νλ κ²μ κ°λ¨ν©λλ€.λͺ¨λΈμ νΉμν CTC μμ€λ‘ νλ ¨λ©λλ€. | ||
|
||
CTCμ ν κ°μ§ λ¨μ μ 'μ리'λ μ ννμ§λ§ 'μ² μ'λ μ ννμ§ μμ λ¨μ΄λ₯Ό μΆλ ₯ν μ μλ€λ μ μ λλ€.κ²°κ΅ CTC ν€λλ μμ ν λ¨μ΄κ° μλ κ°λ³ λ¬Έμλ§ κ³ λ €νκΈ° λλ¬Έμ λλ€. μ€λμ€ νΈλμ€ν¬λ¦½μ μ νμ§μ κ°μ νλ ν κ°μ§ λ°©λ²μ μΈλΆ μΈμ΄ λͺ¨λΈμ μ¬μ©νλ κ²μ λλ€. μ΄ μΈμ΄ λͺ¨λΈμ κΈ°λ³Έμ μΌλ‘ CTC μΆλ ₯ μμ λ§μΆ€λ² κ²μ¬κΈ° μν μ ν©λλ€. | ||
|
||
## Wav2Vec2, HuBERT, M-CTC-T, ...μ μ°¨μ΄μ μ 무μμΈκ°μ?[[whats-the-difference-between-wav2vec2-hubert-mctct]] | ||
|
||
λͺ¨λ νΈλμ€ν¬λ¨Έ κΈ°λ° CTC λͺ¨λΈμ λ§€μ° μ μ¬ν μν€ν μ²λ₯Ό κ°μ§κ³ μμ΅λλ€. νΈλμ€ν¬λ¨Έ μΈμ½λ(λμ½λλ μλ)λ₯Ό μ¬μ©νλ©° κ·Έ μμ CTC ν€λκ° μμ΅λλ€. μν€ν μ² μΈ‘λ©΄μμ 보면 λ€λ₯Έ μ 보λ€λ λΉμ·ν μ μ΄ λ λ§μ΅λλ€. | ||
|
||
Wav2Vec2μ M-CTC-Tμ ν κ°μ§ μ°¨μ΄μ μ μ μλ μμ μ€λμ€ ννμμ μλνλ λ°λ©΄ νμλ λ© μ€ννΈλ‘κ·Έλ¨μ μ λ ₯μΌλ‘ μ¬μ©νλ€λ μ μ λλ€. λν λ λͺ¨λΈμ μλ‘ λ€λ₯Έ λͺ©μ μΌλ‘ νλ ¨λμμ΅λλ€. μλ₯Ό λ€μ΄, M-CTC-Tλ λ€κ΅μ΄ μμ± μΈμμ μν΄ νλ ¨λμκΈ° λλ¬Έμ λ€λ₯Έ μνλ²³ μΈμ νμλ₯Ό ν¬ν¨νλ λΉκ΅μ ν° CTC ν€λλ₯Ό κ°μ§κ³ μμ΅λλ€. | ||
|
||
Wav2Vec2μ HuBERTλ μμ ν λμΌν μν€ν μ²λ₯Ό μ¬μ©νμ§λ§ λ§€μ° λ€λ₯Έ λ°©μμΌλ‘ νμ΅λ©λλ€. Wav2Vec2λ μ€λμ€μ λ§μ€ν¬λ λΆλΆμ λν μμ± λ¨μλ₯Ό μμΈ‘νμ¬ BERTμ λ§μ€ν¬λ μΈμ΄ λͺ¨λΈλ§κ³Ό κ°μ΄ μ¬μ νμ΅λ©λλ€. HuBERTλ BERTμμ ν κ±Έμ λ λμκ° ν μ€νΈ λ¬Έμ₯μ ν ν°κ³Ό μ μ¬ν 'κ°λ³ μμ± λ¨μ'λ₯Ό μμΈ‘νλ λ°©λ²μ νμ΅νμ¬ κΈ°μ‘΄ NLP κΈ°μ μ μ¬μ©νμ¬ μμ±μ μ²λ¦¬ν μ μλλ‘ ν©λλ€. | ||
|
||
μ¬κΈ°μ κ°μ‘° νμλ λͺ¨λΈλ§ νΈλμ€ν¬λ¨Έ κΈ°λ° CTC λͺ¨λΈμ΄ μλλΌλ μ μ λΆλͺ ν λ§μλ립λλ€. λ€λ₯Έ λͺ¨λΈλ λ§μ΄ μμ§λ§ λͺ¨λ λΉμ·ν λ°©μμΌλ‘ μλνλ€λ κ²μ λ°°μ μ΅λλ€. |
Oops, something went wrong.