Ich suche nach einer Bibliothek in Python, die eine ziemlich genaue Spracherkennung hat. Es würde vorzugsweise eine Zeichenfolge zurückgeben, die angibt, was gesagt wurde, damit ich mit der Zeichenfolge arbeiten kann, um andere Dinge zu tun. Vielen Dank!!!
Ich habe mir diese verwandte Frage angesehen , aber ich glaube nicht, dass wir dasselbe fragen.
Sie können CMU Sphinx verwenden :
Als ich vor einiger Zeit nach einer Spracherkennungssoftware für Linux suchte, wurde mir gesagt, dass die Genauigkeit von CMU Sphinx deutlich geringer ist als die von Dragon (ich wäre neugierig, ob hier jemand einen Benchmark Sphinx vs. Dragon hat). Wenn sich Ihre Sprachaufzeichnungen jedoch in einem gut eingeschränkten Bereich befinden, können Sie CMU Sphinx möglicherweise gut genug trainieren.
Whisper von OpenAI (offline, MIT-Lizenz, Python 3.9, CLI) liefert eine sehr genaue Transkription. Zu verwenden (getestet auf Ubuntu 20.04 x64 LTS):
conda create -y --name whisperpy39 python==3.9
conda activate whisperpy39
pip install git+https://github.com/openai/whisper.git
sudo apt update && sudo apt install ffmpeg
whisper recording.wav
whisper recording.wav --model large
Wenn Sie eine Nvidia 3090-GPU verwenden, fügen Sie danach Folgendes hinzuconda activate whisperpy39
pip install -f https://download.pytorch.org/whl/torch_stable.html
conda install pytorch==1.10.1 torchvision torchaudio cudatoolkit=11.0 -c pytorch
es kann als Python-Lib verwendet werden, zB :
import whisper
model = whisper.load_model("base")
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
# print the recognized text
print(result.text)
Leistungsinfo unten.
Modellschlusszeit:
Größe | Parameter | Nur-Englisch-Modell | Mehrsprachiges Modell | Benötigter VRAM | Relative Geschwindigkeit |
---|---|---|---|---|---|
sehr klein | 39 Mio | tiny.en |
tiny |
~1 GB | ~32x |
Base | 74 Mio | base.en |
base |
~1 GB | ~16x |
klein | 244 Mio | small.en |
small |
~2 GB | ~6x |
Mittel | 769 M | medium.en |
medium |
~5 GB | ~2x |
groß | 1550 Mio | N / A | large |
~10 GB | 1x |
WER auf mehreren Korpussen von https://cdn.openai.com/papers/whisper.pdf :
WER für mehrere Sprachen von https://github.com/openai/whisper/blob/main/language-breakdown.svg :
Cees Timmerman
Nikolaus Raul
KnightOfNi