Wav 入力による音声認識モジュールの精度測定

## 測定を行った動機

音声認識（ASR) では、一般に音響特徴量には fbank か mfcc が用いられる。一方、Transformer を用いた画像識別などでは、特徴量の解析には CNN を用いた Feature Extractor を用いることも多い。そこで、wav ファイルを直接の入力とし、Conv1d で音響特徴量を算出する Feature Extractor による ASR モジュールの精度を測定した。比較のため、fbank, mfcc による精度測定も行った。

## 音声認識モジュール

音声認識は、非自己回帰的な音声認識 2 種類で行った。1種類は

24 layers PyTorch Transformer Encoder + CTCloss

である。もう1種類は

12 layers whisper like Transformer Encoder + 12 layers whisper like Transformer Decoder + CTCLoss

である。いずれも Encoder に簡単な conv1d を含む。whisper like Transformer Decoder の入力は、memory 入力に Encoder Outs と target 入力に Encoder Outs を Sequence 方向に 0.25 倍ダウンサンプリングした値を用いた。

Wav 入力による音声認識では、上記の2種類いずれにも Encoder の前段に Feature Extractor として、

7 layers( conv1d + BatchNorm1d + GELU) + LayerNorm + Linear + Dropout

を入れた。

## 学習結果

<table>
<caption> Nar-ASR プログラムのテストデータによる inference WER.
<thread>
<th>model<th>WER
<tbody>
<tr><td style="text-align:left;"> PT fbank<td>25.8
<tr><td style="text-align:left;"> PT mfcc<td>26.7
<tr><td style="text-align:left;"> PT wav<td>26.1
<tr><td style="text-align:left;"> Whisper like fbank<td>19.8
<tr><td style="text-align:left;"> Whisper like mfcc<td>20.3
<tr><td style="text-align:left;"> Whisper like wav<td>21.7

</table>

## 学習データ

学習データは、訓練データに、BASIC5000 の 3000 発話と common voice japanese 35000 発話を用いた、開発データには、BAIC5000 の 1000 発話を、テストデータにも BASIC5000 の 1000 発話を用いた。

## 測定

### fbank + PyTorch Transformer Encoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/b2e5d8f5-73cb-4311-abf5-bf6a75be5611.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/0800b778-d50f-4952-9c44-7bf5f1a4f887.png)

テストでの CER 25.8%

### mfcc + PyTorcn Transformer Encoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/e39eccd7-a136-4759-b29c-964981a2532d.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/69d9dea8-04b1-4ff3-ac0b-f4e40837e56a.png)

テストでの CER 26.7%

### Wav + Feature Extractor + PyTorch Transformer Encoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/50aa7ea1-816f-43d5-8c2c-9b8f4152a3e3.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/f965c3ed-8351-4242-a165-0b60709be6eb.png)

テストでの CER 26.1 %

### fbank + whisper like Transformer Encoder + downsampling + Transformer Decoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/1c755339-1947-4d40-87bb-824753103916.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/c5f7f74f-34e8-4fa2-af0f-984b83bb12b2.png)

テストでの CER 19.8%

### mfcc + whisper like Transformer Encoder + downsampling + Transformer Decoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/a061f2cb-c21b-482c-88e0-38067f9bc860.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/cd2617b0-4aee-42c6-9de8-6338a2224ba3.png)

テストでの CER 20.3%

### Wav + Feature Extractor + whisper like Transformer Encoder + downsampling + Transformer Decoder + CTCLoss

測定時の Loss と CER のグラフを掲載する。

![loss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/7b835bb0-dad4-4f46-9286-e610599de18e.png)

![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958180/922c236d-7ade-4171-abef-735e712c23d5.png)

テストでの CER 21.7%

## 測定に用いたプログラム

測定に用いたプログラムを

https://github.com/toshiouchi/ASR_WAV

に置いておきます。参考になれば幸いです。