Как найти слово в аудиофайле на Python?

У меня есть аудиофайл, содержащий произнесенное слово. Я уверен, что он содержит слово, и мне нужно определить начало и конец слова.

Любые идеи о том, как это сделать с помощью python?

Вот что я сделал. Я попытался использовать библиотеку speech_recognition в Python.

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

try:
    list = r.recognize_google(audio,key=None)                 
    print list
except LookupError:                                
    print("Could not understand audio")

Это расшифрует аудио, но не предоставит временные метки того, когда слова произошли. Я знаю, что могу разбить свой аудиофайл на части и продолжать пропускать его через распознаватель речи Google, пока не получу нужную часть, но это кажется ужасной идеей. Я также предполагаю случаи, когда транскрипция не совсем точна, поэтому слово, в котором я уверен, есть в файле, может быть транскрибировано неточно.

Я также попробовал pocketsphinx, но я не знал, как заставить его указать вероятное местоположение слова в файле (он ужасно транскрибировал тестовый файл).

В идеале я бы искал функцию: find_likely_location_of_word(word), которая возвращает метку времени начала и метки времени окончания.

Я думал, что это должно быть что-то, что было сделано много раз, поэтому, возможно, кто-то может хотя бы указать мне правильное направление?


person Anthony Tyler    schedule 13.06.2017    source источник
comment
Возможный дубликат определения ключевых слов в речи   -  person Nikolay Shmyrev    schedule 18.06.2017
comment
Существуют также API, которые возвращают метки времени, например IBM Watson. Речь идет о балансе скорость/точность. Транскрипция медленная, но более точная, обнаружение происходит быстрее и надежнее, но подвержено ложным срабатываниям.   -  person Nikolay Shmyrev    schedule 18.06.2017


Ответы (1)


пусть слово, которое вы пытаетесь найти, называется var

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

try:
    list = r.recognize_google(audio,key=None)                 
    if var in list:
        print("word found")

except LookupError:                                
    print("Could not understand audio")
person Riddu Sarav    schedule 22.02.2021