Это библиотека Python и инструмент командной строки, который помогает вам искать слово или фразу в аудиофайле (формат wav). Он также основан на первоначальных возможностях поиска и предоставляет некоторые [так называемые] расширенные возможности поиска!
Чтобы прочитать документацию, посетите здесь.
Откройте терминал и введите:
pip установить SimpleAudioIndexer
Подробности установки можно найти в документации здесь.
В репозиторий включен файл docker, если вы не можете выполнить собственную установку или используете систему Windows.
Откройте терминал и введите:
pip удалить SimpleAudioIndexer
Однако удаление sox зависит от того, используете ли вы систему Linux или Mac. Для получения дополнительной информации посетите здесь.
Допустим, у вас есть этот аудиофайл:
Для простоты загрузите его в пустой каталог. Мы будем называть этот каталог SRC_DIR, а имя этого аудиофайла — small_audio.wav.
Вот как вы можете выполнить поиск.
Откройте терминал и войдите.
$ sai --mode "ibm" --username_ibm ИМЯ ПОЛЬЗОВАТЕЛЯ --password_ibm ПАРОЛЬ --src_dir SRC_DIR --search "вызываемый" {'вызывается': {'small_audio.wav': [(1.25, 1.71)]}}
Замените USERNAME и PASSWORD своими учетными данными IBM Watson, а SRC_DIR — абсолютным путем к только что подготовленному каталогу.
Выходом будет, как и выше, словарь, в котором есть запрос, файл(ы), в которых он появляется, и все (начиная со второго и заканчивая вторым) этого запроса.
Обратите внимание, что все команды работают одинаково для других движков (например, Pocketsphinx), например команду выше можно ввести как:
$ sai --mode "cmu" --src_dir SRC_DIR --search "lives" {'lives': {'small_audio.wav': [(3.12, 3.88)]}}
При этом для получения временных меток вместо Watson будет использоваться Pocketsphinx. Обратите внимание, что качество/точность Pocketsphinx намного ниже, чем у Watson.
Вместо поиска слова вы также можете сопоставить шаблон регулярного выражения, например:
$ sai --mode ibm --src_dir SRC_DIR --username_ibm ИМЯ ПОЛЬЗОВАТЕЛЯ --password_ibm ПАРОЛЬ --regexp " [az][az]" {u' in ': {'small_audio.wav': [(2.81, 2.93)]}, {u' to ': {'small_audio.wav': [(1.71, 1.81)]}}
Это был результат поиска двухбуквенных слов. Обратите внимание, что ваши результаты будут соответствовать любым произвольным регулярным выражениям.
Вы также можете сохранить и загрузить индексированные данные из сценария командной строки. Для получения дополнительной информации посетите здесь.
Скажем, у вас есть этот файл
>> > from SimpleAudioIndexer import SimpleAudioIndexer as sai
После этого вам следует создать экземпляр sai.
>> > indexer = sai ( mode = "ibm" , src_dir = "SRC_DIR" , username_ibm = "USERNAME" , password_ibm = "PASSWORD" )
Теперь вы можете проиндексировать все доступные аудиофайлы, вызвав метод index_audio:
>> > indexer . index_audio ()
У вас может быть поисковый генератор:
>> > searcher = indexer . search_gen ( query = "called" )
>> > print ( next ( searcher ))
{ 'Query' : 'called' , 'File Name' : 'small_audio.wav' , 'Result' : ( 1.25 , 1.71 )}
Теперь для search_gen реализовано еще несколько аргументов. Допустим, вы хотите, чтобы ваш поиск был чувствителен к регистру (по умолчанию это не так). Или, скажем, вы хотели найти фразу, но произошел временной разрыв, и индексатор не нашел ее правильно, вы можете указать Timing_error. Или, скажем, какое-то слово полностью пропущено, тогда вы можете указать Missing_word_tolerance и т. д.
Полный список см. в справочнике по API здесь.
Обратите внимание, что вы также можете вызвать метод search_all для поиска списка запросов во всех аудиофайлах:
Наконец, вы можете выполнить поиск по регулярным выражениям!
>> > print ( indexer . search_regexp ( pattern = "[A-Z][^l]* " )
{ u'Americans are ca' : { 'small_audio.wav' : [( 0.21 , 1.71 )]}}
Реализовано больше функций. Подробные объяснения можно найти в документации здесь.
Если вы хотите поделиться кодом или идеями, отправить запрос об ошибке или оставить отзыв, посетите файл CONTRIBUTING.
См. также список участников этого проекта.
Этот проект лицензируется по лицензии Apache v2.0 — более подробную информацию см. в файле ЛИЦЕНЗИИ.