alphacep / alphacep/vosk-api

Model Adaption Documentation (small model w/ custom dictionary)

Open
#2,009 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
15.1k
Forks
1.8k
PR merge metrics
No merged PRs in 30d

Description

I am trying to use Vosk for voice recognition in an air traffic control simulator called Airflow. It will be running as an offline desktop application in real-time so it requires the Vosk small English model for speed. The dictionary I need is based on FAA phraseology so it is small, but also contains several unique words which are not in the standard English dictionary (eg "ILS", "niner", "VOR", fix names).

### Requirements:
- Small model speeds (to run on desktop application)
- Custom dictionary (unique words which are not in previous models)
- Custom pronunciation (for words that exist but have new phones)

### Progress:
I have manually created the following files.

**words.txt**
```
0
SIL 1
ALPHA 2
BRAVO 3
CHARLIE 4
...
```

**lexicon.txt**
```
ALPHA AE L F AA
BRAVO B R AA V OW
...
```

**lexicon.fst.txt**
```
0 1 AE
1 2 L
2 3 F
3 12 AA ALPHA
0 4 B
4 5 R
5 6 AA
...
```

**phones.txt**
```
0
AA 1
AE 2
AH 3
AO 4
...
```

**grammar.txt**
Generated from command formats in a .jsgf.

I have been able to compile **L.fst** and **G.fst** using OpenFst from these files.

### Documentation Questions
1. Is it possible to reuse the Vosk small model acoustic model and combine with my LG.fst? If so, what is the best way of doing this?
2. Is it possible to prune a large model's acoustic model to be able to run at the small model speeds if I have a small dictionary?
3. Is there a better method to meet these requirements?

Any help is appreciated!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.