Robust Speech Recognition via Large-Scale Weak Supervision

論文を読むついでに...

# Refarence
https://cdn.openai.com/papers/whisper.pdf

# Wisper
## Data
80チャネルの メルスペクトログラム[^1]
[^1]: メル単位のスペクトログラム。スペクトログラムは時間、周波数(音の高さ)、強さ(音の大きさ)の三次元データ

16000Hzに re-sample [^2]したデータ
[^2]: 音声データのサンプリングレートを16,000Hzに変更することを指している。サンプリングレートは、1秒間に取得される音声データのサンプル数を表す。例えば、44,100Hzのサンプリングレートでは、1秒あたりに44,100個のサンプルが取得されるということ。この論文では元データよりサンプリングレートが低くしているため、データのダウンサンプリングを行っている。とにかく、この動作でデータの次元は変わらない。



## pre-train用データ
計680000時間の音声データ。30秒ごとのsegmentsに分割される。

## Embedding
(3×3フィルターの畳み込み)×2 + 活性化関数(GELU) + position embedding
※2層目の畳み込み層はストライドが２

## Scale
- モデル
    2.4. Training Details参照
ハイパラの内容は以下の通り
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/6f5675a8-378c-2ce7-e7ab-87fda3ad8a2b.png)


- データセット
    - 計68000時間の音声データ
        - 117000時間：英語以外の言語のデータ
        - 125000時間：Xen翻訳データセット
        - 残り：英語のデータ

---
---
# 論文の内容ざっくりと


## Abstract
　多言語音声認識タスクに加え、翻訳タスク、言語識別タスクなど複数の補助タスクにも対応しているモデルについて

## 1. Introduction 
いんとろだくしょん！

## 2.Approach
### 2.1 Data Processing
 - データの収集
 - 収集したデータの前処理
     - 不要な記号などの削除
     - 文字の正規化やクリーニング
 - 字幕テキストを音声トランスクリプトに変換
     - 音声認識モデルを使用
     - 字幕データから音声をテキストに変換（ノイズが反映されたりする）
 - 音声トランスクリプトに対して追加のクリーニングとフィルタリング
     - ノイズの排除や品質の向上

### 2.2 Model
提案モデルはRNNベースのモデル(LSTM)
入力は音声トランスクリプトで、音声フレームシーケンスとの対応関係を学習する。
- 音声フレームシーケンス
    - 音声記号を短時間スライスしたもの
    - 各フレームに対して音素または単語のラベルが付与される

### 2.3 Multitask Format
音声認識のタスクに加え、以下のような補助タスクも同時に学習する。
- 音素の境界検出や音素クラスの予測

### 2.4. Training Details

| トレーニング手法 | オプティマイザ |
| --- | --- |
|バッチ学習 &正則化&ドロップアウト | Adam |

モデルのサイズは下の表参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/24d6f800-f396-2e2e-f2e0-c9325d2256ad.png)
>["Robust Speech Recognition via Large-Scale Weak Supervision"](https://cdn.openai.com/papers/whisper.pdf)

## 3.Experiments
### 3.1 Zero-shot Evaluation
トレーニングデータに含まれないタスクやデータに対してモデルの性能を評価する手法

今回の論文では教師データから生成された音声トランスクリプトを使用してトレーニングしたモデルが教師データに含まれない新しい音声トランスクリプトに対して正確な予測が行えるかを評価している。

### 3.2 Evaluation Metrics
以下の評価指標を使用
- WER(Word Error Rate)
    - 音声認識システムの出力と正解トランスクリプトとの間で単語レベルでの誤り率を測定する指標。低いほうがよい
- SER(Sentence Error Rate)
    - 音声認識システムの出力と正解トランスクリプトとの間で文レベルでの誤り率を計算する指標。低いほうが良い
### 3.3. English Speech Recognition
英語音声認識の結果について記されている。
Wisperモデルは従来のモデルと比較して優れた性能を示したとのこと
また、Zero-shot に関しても優れた性能であった。
![Screenshot from 2023-06-26 13-52-30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/fdff8091-4c17-d7c4-e6c5-d528168141fd.png)
>["Robust Speech Recognition via Large-Scale Weak Supervision"](https://cdn.openai.com/papers/whisper.pdf)

上の表で"wev2vec 2.0..."は当時のSotaモデル。LibriSpeechテストクリーンでは非常に近い評価を得られているにもかかわらず、他の音声認識データセットで評価するとRER(相対誤差)は平均して55.2％も削減できていることがわかる。従来のモデルと比較すると、Wisperは同等の精度でありながら大きな汎用性を得ている。

### 3.4. Multi-lingual Speech Recognition
Wisperモデルは英語に限らず複数の言語に対しても音声認識をすることができる。

![Screenshot from 2023-06-26 14-32-58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/593b9c35-40cb-fc23-4c82-1718556273ed.png)


　上図は、言語ごとに事前学習に使用される音声認識データの量が増えるほど、対応する言語におけるゼロショットのパフォーマンスも向上する可能性が高いことを示している。言語ごとの事前学習データの量が、その言語での音声認識パフォーマンスに大きく影響することが示唆されている。学習量と正確性は強い相関が見られるが、外れ値（傾向に対して悪いパフォーマンスがでた言語）がいくつか存在する。具体的には、ヘブライ語（HE）、テルグ語（TE）、中国語（ZH）、韓国語（KO）である。これらの性能が悪いのは、訓練データの大部分を締めている印欧語族とは関係の遠い固有の文字体系を持つためであろう。


![Screenshot from 2023-06-26 14-44-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/c2cdceeb-3136-41c1-6daa-70ad8013572c.png)

　この表から、たしかにMSLベンチマークではよい結果がでている。しかし、VoxPopuliベンチマークではあまりよい結果が得られていないようだ。
　VoxPopuli 上の Whisper モデルのパフォーマンスが低いのは、他のモデルには教師なし事前トレーニングデータの主要なソースとしてこの分布が含まれており、データセットには大幅に多くの教師ありデータが含まれているためであるとされている。
　つまりWisperが悪いのではなく、ほかのmodelたちがズルをしているということ。

### 3.5. Translation
　Wisperモデルでの翻訳タスクの結果が記されている。
　トレーニングデータには、音声フレームシーケンス、音声トランスクリプト、および対応する翻訳テキストのペアが含まれている。トレーニング後、Wisperは音声トランスクリプトを受け取り、対応する翻訳テキストを出力する。
　今回用いている評価仕様はBLEUという翻訳タスクに用いられる指標。BLEUスコアは、生成された翻訳テキストと正解の参照翻訳テキストとの間のNグラムの一致度を計算する。高いほうがよい。

　![Screenshot from 2023-06-26 15-17-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/cd53e4cd-6079-69f1-e78a-40ec1cf36bb4.png)

　表より、良い結果が得られていることがわかる。


### 3.6. Language Identification
　言語の識別においては、Whisperのゼロショットの言語識別精度が、従来の教師あり結果と比べて劣っている。十分なトレーニングデータがない言語においては性能が悪くなるようだ。特にFleursデータセットにおける結果を従来のモデルと比較した表を見ると一目瞭然である。

![Screenshot from 2023-06-26 15-20-55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/86aa5420-9c02-8961-2521-ed41dbb210a5.png)

### 3.7. Robustness to Additive Noise
　Whisperの加算ノイズに対する頑健性について
　結果として、ある程度のノイズレベルでは問題なく音声認識できるが、高レベルのノイズであれば影響が出るとのこと。

### 3.8. Long-form Transcription
 長文の転写について
Whisperは長文の転写においても高い精度を示すことが示されている。
図を見ればわかる
![Screenshot from 2023-06-26 15-41-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/d19c9e30-d1a2-dc69-57d3-57da32927949.png)

### 3.9. Comparison with Human Performance
Whisperは人間のパフォーマンスに近いまたはそれを上回る精度を達成することが示されいる。結果を示した図は以下の通り

![Screenshot from 2023-06-26 15-48-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/4e23d79c-5ea2-71f0-2991-2b58e101979b.png)

## 4. Analysis and Ablations
### 4.1. Model Scaling
モデルスケーリングの重要性

モデルのパラメータ数を38M~1549Mの範囲で評価した。
少なくともこの範囲ではパラメータ数が多いほど精度が良くなるようだ。
![Screenshot from 2023-06-26 15-52-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/63c81ed7-a814-e18f-8f3e-16491b939d48.png)

### 4.2. Dataset Scaling
今度はデータセットのサイズに関しての比較。
表の通り、大きいほど精度は良くなる
![Screenshot from 2023-06-26 15-54-37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3363422/53be8dc9-bb2e-cf1a-9161-195680fe2fc2.png)