Аудио (WAV) в преобразование речи - нет желаемого выхода - PullRequest
2 голосов
/ 20 февраля 2020

Входной аудиосигнал должен звучать так: «Катрина сегодня пропускает школу. Никаких особых причин. Просто между тем, чтобы послушать самый скучный учитель-дрон или тусоваться в доме друга, и, возможно, немного подняться», было оценено как ».
Но я получаю: "Школа без особых причин"
Аудиофайл: https://recontent-1bca.kxcdn.com/v7.2/teens/assets/audio/attends1.mp3 Это дает расплывчатый вывод с использованием библиотеки speech_recognition

import speech_recognition as sr
r = sr.Recognizer()
with sr.WavFile("attends.wav") as source:             
    audio = r.record(source)                        

try:
    print("Transcription: " + r.recognize(audio))  
except LookupError:                                 
    print("Could not understand audio")

1 Ответ

0 голосов
/ 20 февраля 2020

Попробуйте этот код из Vosk библиотеки:

#!/usr/bin/python3

from vosk import Model, KaldiRecognizer
import sys
import os
import wave

if not os.path.exists("model-en"):
    print ("Please download the model from https://github.com/alphacep/kaldi-android-demo/releases and unpack as 'model-en' in the current folder.")
    exit (1)

wf = wave.open(sys.argv[1], "rb")
if wf.getnchannels() != 1 or wf.getsampwidth() != 2 or wf.getcomptype() != "NONE":
    print ("Audio file must be WAV format mono PCM.")
    exit (1)

model = Model("model-en")
rec = KaldiRecognizer(model, wf.getframerate())

while True:
    data = wf.readframes(1000)
    if len(data) == 0:
        break
    if rec.AcceptWaveform(data):
        print(rec.Result())
    else:
        print(rec.PartialResult())

print(rec.FinalResult())
...