@OdAs
Начинающий пайтон програмист

Есть ли пайтон библиотека распознавания речи с поддержкой формата ogg файлов?

Нужна библиотека для распознавания речи (или обработки аудио файла ) и вывода содержимого в текст (по типу пайтон библиотеки SpeechRecognizer)
Обязательно что бы библиотека могла работать с файлами формата ogg . Если у кого-то есть идеи , буду рад совету , спасибо)))
  • Вопрос задан
  • 1690 просмотров
Решения вопроса 2
sanya84
@sanya84
Фанатик Python 3
Потребуется ffmpeg установить из ffmpeg
Распаковать и прописать в PATH
from subprocess import Popen
from speech_recognition import (Recognizer, AudioFile)
from speech_recognition import (UnknownValueError, RequestError)


class SpeechOggAudioFileToText:
    def __init__(self):
        self.recognizer = Recognizer()

    def ogg_to_wav(self, file):
        args = ['ffmpeg','-i', file, 'test.wav']
        process = Popen(args)
        process.wait()
    @property
    def text(self):
        AUDIO_FILE = 'test.wav'
        with AudioFile(AUDIO_FILE) as source:
            audio = self.recognizer.record(source)
        try:
            text = self.recognizer.recognize_google(audio, language='RU')
            return text
        except UnknownValueError:
            print("Не удаётся распознать аудио файл")
        except RequestError as error:
            print("Не удалось запросить результаты: {0}".format(error))

def main():
    speech_ogg = SpeechOggAudioFileToText()
    speech_ogg.ogg_to_wav('test.ogg')
    print(speech_ogg.text)

if __name__ == '__main__':
    main()
Ответ написан
@nshmyrev
Воск, например, вместе с ffmpeg, работать будет без сети:

https://github.com/alphacep/vosk-api/blob/master/p...

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

if not os.path.exists("model"):
    print ("Please download the model from https://github.com/alphacep/vosk-api/blob/master/doc/models.md and unpack as 'model' in the current folder.")
    exit (1)

sample_rate=16000
model = Model("model")
rec = KaldiRecognizer(model, sample_rate)

process = subprocess.Popen(['ffmpeg', '-loglevel', 'quiet', '-i',
                            sys.argv[1],
                            '-ar', str(sample_rate) , '-ac', '1', '-f', 's16le', '-'],
                            stdout=subprocess.PIPE)

while True:
    data = process.stdout.read(4000)
    if len(data) == 0:
        break
    if rec.AcceptWaveform(data):
        print(rec.Result())
    else:
        print(rec.PartialResult())

print(rec.FinalResult())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nazartropanets
@nazartropanets
изучаю deep learning и ML(Python)
Я не знаю библиотеки разпознования речи с поддержкой .ogg, но возможно я смогу помочь. В Python можно конвертировать .ogg в .wav и уже использовать .wav для Speech to Text.

import soundfile
data, samplerate = soundfile.read('yourfile.ogg')
soundfile.write('newfile.wav', data, samplerate)
data, samplerate = soundfile.read('newfile.wav')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы