https://github.com/wenet-e2e/wekws
Production First and Production Ready End-to-End Keyword Spotting Toolkit
https://github.com/wenet-e2e/wekws
Last synced: 6 months ago
JSON representation
Production First and Production Ready End-to-End Keyword Spotting Toolkit
- Host: GitHub
- URL: https://github.com/wenet-e2e/wekws
- Owner: wenet-e2e
- License: apache-2.0
- Created: 2021-11-06T09:56:48.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-24T06:51:20.000Z (8 months ago)
- Last Synced: 2025-04-08T02:38:29.538Z (7 months ago)
- Language: Python
- Size: 406 KB
- Stars: 529
- Watchers: 18
- Forks: 119
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-keyword-spotting - WeKws (Production First and Production Ready End-to-End Keyword Spotting Toolkit)
README
# WeKws
[**Roadmap**](https://github.com/wenet-e2e/wekws/issues/121)
| [**Paper**](https://arxiv.org/pdf/2210.16743.pdf)
Production First and Production Ready End-to-End Keyword Spotting Toolkit.
The goal of this toolkit it to...
Small footprint keyword spotting (KWS), or specifically wake-up word (WuW) detection is a typical and important module in internet of things (IoT) devices. It provides a way for users to control IoT devices with a hands-free experience. A WuW detection system usually runs locally and persistently on IoT devices, which requires low consumptional power, less model parameters, low computational comlexity and to detect predefined keyword in a streaming way, i.e., requires low latency.
## Typical Scenario
We are going to support the following typical applications of wakeup word:
* Single wake-up word
* Multiple wake-up words
* Customizable wake-up word
* Personalized wake-up word, i.e. combination of wake-up word detection and voiceprint
## Installation
- Clone the repo
``` sh
git clone https://github.com/wenet-e2e/wekws.git
```
- Install Conda: please see https://docs.conda.io/en/latest/miniconda.html
- Create Conda env:
``` sh
conda create -n wekws python=3.10
conda activate wekws
conda install conda-forge::sox
```
- Install torch and torchaudio, It's recommended to use torch 2.5.1 with CUDA 12.4 (for other versions of CUDA, please see https://pytorch.org/get-started/locally/)
``` sh
pip install torch torchaudio
```
- Install other python packages
``` sh
pip install -r requirements.txt
pre-commit install # for clean and tidy code
```
## Dataset
We plan to support a variaty of open source wake-up word datasets, include but not limited to:
* [Hey Snips](https://github.com/sonos/keyword-spotting-research-datasets)
* [Google Speech Command](https://arxiv.org/pdf/1804.03209.pdf)
* [Hi Miya(你好米雅)](http://www.aishelltech.com/wakeup_data)
* [Hi Xiaowen(你好小问)](http://openslr.org/87/)
All the well-trained models on these dataset will be made public avaliable.
## Runtime
We plan to support a variaty of hardwares and platforms, including:
* Web browser
* x86
* Android
* Raspberry Pi
## Discussion
For Chinese users, you can scan the QR code on the left to follow our offical account of WeNet.
We also created a WeChat group for better discussion and quicker response.
Please scan the QR code on the right to join the chat group.
|
|
|
| ---- | ---- |
## Reference
* Mining Effective Negative Training Samples for Keyword Spotting
([github]( https://github.com/jingyonghou/KWS_Max-pooling_RHE),
[paper](https://www.microsoft.com/en-us/research/uploads/prod/2020/04/ICASSP2020_Max_pooling_KWS.pdf))
* Max-pooling Loss Training of Long Short-term Memory Networks for Small-footprint Keyword Spotting
([paper](https://arxiv.org/pdf/1705.02411.pdf))
* A depthwise separable convolutional neural network for keyword spotting on an embedded system
([github](https://github.com/PeterMS123/KWS-DS-CNN-for-embedded),
[paper](https://asmp-eurasipjournals.springeropen.com/track/pdf/10.1186/s13636-020-00176-2.pdf))
* Hello Edge: Keyword Spotting on Microcontrollers
([github](https://github.com/ARM-software/ML-KWS-for-MCU),
[paper](https://arxiv.org/pdf/1711.07128.pdf))
* An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
([github](http://github.com/locuslab/TCN),
[paper](https://arxiv.org/pdf/1803.01271.pdf))