commit af2dfa64302e777f20548fa56146f7a7343a2c1b Author: mwiegand Date: Sun Sep 11 14:45:20 2022 +0200 inital commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea0363c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.venv +audio +model diff --git a/left4dead_voices b/left4dead_voices new file mode 100755 index 0000000..dda24a5 --- /dev/null +++ b/left4dead_voices @@ -0,0 +1,29 @@ +#!/usr/bin/python3 + +# download and put in folder 'audio': https://cloud.sublimity.de/s/2QP6PAWGTK57iSt +# unpack and rename folder to 'model': https://alphacephei.com/vosk/models/vosk-model-en-us-0.22.zip + +from vosk import Model, KaldiRecognizer +import sys +import json +import os +from glob import glob +from random import random +import wave + +model = Model('model') + +for path in sorted(glob('audio/**/*.wav', recursive= True), key=lambda k: random()): + with wave.open(path, "rb") as wav: + frame_rate = wav.getframerate() + rec = KaldiRecognizer(model, 44100) + + while True: + data = wav.readframes(2000) + + if len(data) == 0: + break + else: + rec.AcceptWaveform(data) + + print(f'{path} ({frame_rate}):'.ljust(70, ' '), json.loads(rec.FinalResult())['text']) diff --git a/test b/test new file mode 100755 index 0000000..4660a67 --- /dev/null +++ b/test @@ -0,0 +1,31 @@ +#!/usr/bin/python3 + +from vosk import Model, KaldiRecognizer +import sys +import json +import os +import wave + +model_path = "model" + +if not os.path.exists(model_path): + print ("Please download the model from https://github.com/alphacep/kaldi-android-demo/releases and unpack as 'model' in the current folder.") + exit (1) + +model = Model(model_path) + +with wave.open(sys.argv[1], "rb") as wf: + frame_rate = wf.getframerate() + + rec = KaldiRecognizer(model, frame_rate) + + while True: + data = wf.readframes(2000) + if len(data) == 0: + break + if rec.AcceptWaveform(data): + print(json.loads(rec.Result())) + else: + print(json.loads(rec.PartialResult())) + + print(json.loads(rec.FinalResult()))