Сегодняшний пост подготовлен доктором Мехди Аллахьяри. Исходный пост вы можете найти здесь.
Задумывались ли вы когда-нибудь о "Как составить резюме аудиофайла?". Примерами аудиофайлов могут быть запись встречи или эпизод подкаста, и это лишь некоторые из них. Есть два основных этапа, которые показаны на диаграмме ниже:
- Автоматическое распознавание речи. На этом шаге создается расшифровка или текстовая версия аудиофайла.
- Модель суммирования. Он суммирует стенограмму с использованием модели суммирования машинного обучения.
Подведение итогов конвейера аудиофайлов
В этом посте мы сосредоточимся на первом шаге и посмотрим, как создать расшифровку аудиофайла. Кроме того, для этой задачи мы будем использовать библиотеки с открытым исходным кодом. Некоторые из библиотек с открытым исходным кодом включают:
- Nvidia NeMo: набор инструментов для диалогового ИИ
- ESPnet: комплексный инструментарий для обработки речи
Автоматическое распознавание речи с помощью NeMo
Первый шаг — установить пакет NeMo:
apt-get update && apt-get install -y libsndfile1 ffmpeg pip install Cython pip install nemo_toolkit['all']
Затем нам нужно создать экземпляры моделей, которые мы хотели бы использовать. Посмотреть все доступные модели можно здесь. Мы загрузим audio_file и преобразуем его в текст (также известный как расшифровка) с помощью модели QuartzNetASR. Примечание. аудиофайлы должны быть в формате .wav.
Audio_file = "path/to/your/file.wav" # Speech Recognition model - QuartzNet quartznet = nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="stt_en_quartznet15x5").cuda() # Punctuation and capitalization model punctuation = nemo_nlp.models.PunctuationCapitalizationModel.from_pretrained(model_name='punctuation_en_distilbert').cuda()
from_pretrained(…)
API загружает и инициализирует модель прямо из облака.
Следующим шагом является использование модели:
# Convert our audio sample to text files = [Audio_file] raw_text = '' text = '' for fname, transcription in zip(files, quartznet.transcribe(paths2audio_files=files)): raw_text = transcription # Add capitalization and punctuation res = punctuation.add_punctuation_capitalization(queries=[raw_text]) text = res[0] print(f'\nRaw recognized text: {raw_text}. \nText with capitalization and punctuation: {text}')
Вот и все! Переменная text содержит стенограмму вашего аудиофайла. Вы можете найти еще несколько уроков возможностей NeMo.
Следующие шаги
Теперь, когда у нас есть стенограмма, мы можем составить из нее резюме. Подсказка: множество вариантов и примеров можно найти здесь. Было бы неплохо разработать демонстрационное приложение, предоставляющее API для этих задач, следовательно, у нас было бы полноценное приложение!
Удачной практики!
Спасибо, что читаете мою рассылку. Вы можете подписаться на меня в Linkedin или Twitter @Angelina_Magr!