wav2vec-2.0

版本 1.0.0 (464.3 KB) 作者: Brian Hemmat
This repo provides the pretrained baseline 960 hours wav2vec 2.0 model in MATLAB.
522.0 次下载
更新时间 2021/12/13

Speech-to-Text Transcription Using wav2vec 2.0

This repo enables you to load the pretrained wav2vec 2.0 baseline 960 hours model into MATLAB and perform speech-to-text transcription [1].

speech2text image

Creator: MathWorks Development

Requirements

To accelerate transcription, a GPU and the following toolbox is recommended:

Getting Started

Download or clone this repositiory to your machine and open it in MATLAB®.

Run speech_to_text_using_wav2vec.mlx to perform speech-to-text conversion on a specified audio file. The script plays the audio file to your default sound card and returns the text.

inference image

You can step through the script to examine the structure of the wav2vec 2.0 model.

You can also use the wav2vec.p file as a portable implementation of the wav2vec 2.0 model. portable image

Network Details

The model provided in this example corresponds to the inference-only wav2vec 2.0 base model with the 960 hours finetuning split. It was trained using the LibriSpeech dataset [2]. The wav2vec 2.0 inference path consists of a feature encoder, a positional encoder, a context network, and a decoder. You can step through the speech_to_text_using_wav2vec.mlx file to examine the structure of each module.

speech2text image

Feature Encoding

The feature encoder passes raw audio input through seven 1-D convolutional blocks. The first block includes an instance (channel-wise) normalization layer between the convolution and GELU activation layers. The output of the convolutional blocks is passed through layer normalization. The total context of the encoder receptive field is 400 samples which corresponds to 25 ms at the 16 kHz input sample rate.

speech2text image

Positional Encoding

The positional encoder passes the latent features through grouped 1-D convolution to create a relative positional vector which is then added to the latent features to encode the position of the features relative to one another.

speech2text image

Transformer Encoding

The context network applies twelve encoder blocks in sequence. Each block applies multi-head attention and feed forward blocks in sequence. The feedforward block consists of two fully-connected layers separated by a GELU layer.

speech2text image

Multi-Head Attention

Each block of the context network has three linear (fully-connected) layers which output the Q (query), K (key), and V (value) vectors. The Q, K, and V vectors are then chunked into twelve (the number of heads in the system) non-overlapping sections. Scaled dot-product attention is applied to each chunk individually and the results are concatenated. The output is passed through a linear layer to form multi-head attention.

speech2text image

Text Decoding

Text decoding is performed using a greedy decoding algorithm to sample the most probable tokens at each time step. Since the model is trained using connectionist temporal classification (CTC), post-procesing is required to remove duplicated blank tokens. This is the simplest decoding method and includes a minimalist language model.

Metrics and Evaluation

Accuracy Metrics

Accuracy metrics are as reported in [1].

Model Unlabeled Data Language Model dev-clean (WER) dev-other (WER) test-clean (WER) test-other (WER)
BASE LS-960 None 3.2 8.9 3.4 8.5

WER = word error rate

Size

The total size of the model is 236 MB.

License

The license is available in the License.txt file in this repository.

References

[1] Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, and Michael Auli. wav2vec 2.0: A framework for self-supervised learning of speech representations. arXiv preprint arXiv:2006.11477, 2020.

[2] Panayotov, Vassil, Guoguo Chen, Daniel Povey, and Sanjeev Khudanpur. "Librispeech: An ASR Corpus Based on Public Domain Audio Books." In 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 5206–10. South Brisbane, Queensland, Australia: IEEE, 2015. https://doi.org/10.1109/ICASSP.2015.7178964.

Copyright 2021 The MathWorks, Inc.

引用格式

Brian Hemmat (2024). wav2vec-2.0 (https://github.com/matlab-deep-learning/wav2vec-2.0/releases/tag/v1.0.0), GitHub. 检索来源 .

MATLAB 版本兼容性
创建方式 R2021b
与 R2021b 及更高版本兼容
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.0.0

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库