+++ News: модель NISQA недавно была обновлена до NISQA v2.0. Новая версия предлагает многомерные прогнозы с более высокой точностью и позволяет обучать и создавать модель.
Прогноз качества речи:
NISQA - это модель глубокого обучения/структура для прогнозирования качества речи. Веса модели NISQA могут использоваться для прогнозирования качества речевой выборки, которая была отправлена через систему связи (например, телефон или видеозвонок). Помимо общего качества речи, NISQA также обеспечивает прогнозы для размеров качества, шум , окраска , разрыва и громкости, чтобы дать больше понимания причины деградации качества.
TTS прогноз естественности:
Веса модели NISQA-TTS можно использовать для оценки естественности синтетической речи, генерируемой преобразованием голоса или системой текста в речь (Siri, Alexa и т. Д.).
Обучение/Манифункция:
NISQA можно использовать для обучения новых односторонних или двойных моделей прогнозирования качества речи с различными архитектурами глубокого обучения, такими как CNN или DFF-> самостоятельно приспособление или LSTM-> поднятие внимания или максимальное количество. Предоставленные веса модели также могут быть применены для Finetune обученной модели в отношении новых данных или для обучения передачи к другой задаче регрессии (например, оценка качества улучшенной речи, оценки сходства динамиков или распознавания эмоций).
Наборы данных о качестве речи:
Мы предоставляем большой корпус из более чем 14 000 образцов речи с субъективным качеством речи и метками измерения качества речи.
Более подробная информация о структуре модели глубокого обучения, использованных наборах данных обучения и вариантах обучения см. В документе NISQA и Wiki.
Чтобы установить требования установить Anaconda, а затем использовать:
conda env create -f env.yml
Это создаст новую среду с названием «Nisqa». Активировать эту среду, чтобы продолжить:
conda activate nisqa
Мы приводим примеры использования NISQA для прогнозирования качества образцов речи, для обучения новой модели качества речи и оценки эффективности модели обученной речи.
Доступны три разных веса модели, соответствующие веса должны быть загружены в зависимости от домена:
| Модель | Вывод прогнозирования | Домен | Имя файла |
|---|---|---|---|
| Nisqa (v2.0) | Общее качество, шум, окраска, разрыв, громкость | Переданная речь | nisqa.tar |
| Nisqa (v2.0) только MOS | Только общее качество (для обучения в области создания/переноса) | Переданная речь | nisqa_mos_only.tar |
| Nisqa-tts (v1.0) | Естественность | Синтезированная речь | nisqa_tts.tar |
Есть три режима, доступные для прогнозирования качества речи через аргументы командной строки:
ВАЖНО: Выберите « nisqa.tar », чтобы предсказать качество передаваемой речевой выборки и « nisqa_tts.tar », чтобы предсказать естественность синтезированной выборки речи.
Для прогнозирования качества единого использования файлов .WAV:
python run_predict.py --mode predict_file --pretrained_model weights/nisqa.tar --deg /path/to/wav/file.wav --output_dir /path/to/dir/with/results
Чтобы предсказать качество всех файлов .wav в использовании папки:
python run_predict.py --mode predict_dir --pretrained_model weights/nisqa.tar --data_dir /path/to/folder/with/wavs --num_workers 0 --bs 10 --output_dir /path/to/dir/with/results
Чтобы предсказать качество всех файлов .wav, указанных в использовании таблицы CSV:
python run_predict.py --mode predict_csv --pretrained_model weights/nisqa.tar --csv_file files.csv --csv_deg column_name_of_filepaths --num_workers 0 --bs 10 --output_dir /path/to/dir/with/results
Результаты будут напечатаны на консоли и сохраняются в файле CSV в данной папке (необязательно с - -Output_dir). Чтобы ускорить прогноз, количество рабочих и размер партии DataLoader Pytorch может быть увеличено (необязательно с - -Num_workers и -BS). В случае стереофайлов -MS_CHANLER можно использовать для выбора аудиоканала.
Чтобы использовать веса модели для определения модели на новом наборе данных, необходим только файл CSV с именами файлов и метки. Учебная конфигурация контролируется из файла YAML и может быть запущена следующим образом:
python run_train.py --yaml config/finetune_nisqa.yaml
Если используется корпус NISQA, только два аргумента должны обновляться в файле YAML, и вы готовы к работе: data_dir в извлеченную папку nisqa_corpus и output_dir , где должны храниться результаты.
Если вы используете свой собственный набор данных или хотите загрузить модель NISQA-TTS, необходимы некоторые другие обновления.
Ваш файл CSV должен содержать не менее трех столбцов со следующими именами
db с отдельными именами наборов данных для каждого файлаfilepath_deg FILEPATH в деградированный файл WAV, либо абсолютные пути, либо относительно data_dir (имя столбца CSV может быть изменено в YAML)mos с целевыми метками (имя столбца CSV может быть изменено в YAML) finetune_nisqa.yaml должен быть обновлен следующим образом:
data_dir к основной папке, которая содержит файл CSV и наборы данныхoutput_dir к выводной папке с сохраненными весами и результатами моделиpretrained_model имя файла предварительной модели, либо nisqa_mos_only.tar для естественной речи или nisqa_tts.tar для синтезированной речиcsv_file Имя CSV с FilePaths и Target Labelscsv_deg CSV Имя столбца, которое содержит FILEPATHS (например, filepath_deg )csv_mos_train и csv_mos_val CSV Имена столбцов целевого значения (например, mos )csv_db_train и csv_db_val Имена наборов данных, которые вы хотите использовать для обучения и проверки. Имена наборов данных должны быть в столбце db .См. Комментарии в файле конфигурации YAML и Wiki (еще не добавлено) для более расширенных вариантов обучения. Хорошей отправной точкой было бы использовать корпус NISQA для начала обучения со стандартной конфигурацией.
NISQA также может использоваться в качестве основы для обучения новых моделей качества речи с различными архитектурами глубокого обучения. Общая структура модели заключается в следующем:
Модели FrameWise и зависимости от времени могут быть пропущены, например, для обучения модели LSTM без CNN, которая использует последний шаг для прогнозирования. Также можно добавить второй стадию зависимости от времени, например, для структуры LSTM-Self-Attention. Структуру модели можно легко управлять с помощью файла конфигурации YAML. Обучение со стандартной конфигурацией модели NISQA можно начать с корпуса NISQA следующим образом:
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
Если используется корпус NISQA, необходимо обновить только data_dir в папку с неразжишенной NISQA_CORPUS и output_dir в файле YAML. В противном случае, см. Предыдущий раздел «Создание» для обновления файла YAML, если применяется пользовательский набор данных.
Также возможно обучать любую другую комбинацию нейронных сетей, например, обучать модель с LSTM вместо самопричастования, предоставляется файл конфигурации примера train_nisqa_cnn_lstm_avg.yaml .
Чтобы обучить двойную модель для прогнозирования качества речи, для прогнозирования качества речи, файл конфигурации train_nisqa_double_ended.yaml может использоваться в качестве примера. См. Комментарии в файлах YAML и Wiki (еще не добавлено) для получения более подробной информации о различных возможных структурах модели и расширенных вариантах обучения.
Обученные модели могут быть оценены на данном наборе данных следующим образом (также могут использоваться в качестве соответствия проверки установки модели):
python run_evaluate.py
Перед запуском параметров и путей внутри сценария Python run_evaluate.py должны быть обновлены. Если используется корпус NISQA, необходимо скорректировать только пути data_dir и output_dir . Помимо корреляции Пирсона и RMSE, также рассчитывается RMSE после того, как полиномиальное отображение первого порядка. Если предоставлен файл CSV с мечениями для кондиционирования, сценарий также будет выходить из результатов на кондиционер и RMSE*. При желании можно построить корреляционные диаграммы. Сценарий должен вернуть те же результаты, что и в газете NISQA, когда он запускается на корпусе NISQA.
Корпус NISQA включает в себя более 14 000 речевых образцов с моделируемыми (например, кодеками, пакетом, фоновым шумом) и живыми (например, мобильным телефоном, Zoom, Skype, WhatsApp).
Ссылки для загрузки и более подробную информацию о наборах данных и используемых образцах речи источника см. В Wiki Nisqa Corpus.
Код NISQA лицензирован по лицензии MIT.
Веса модели (nisqa.tar, nisqa_mos_only.tar, nisqa_tts.tar) предоставляются в соответствии с лицензией Creative Commons attribution-noncommercial-sharealike 4.0 (CC by-nc-sa 4.0).
Корпус NISQA представлен в соответствии с первоначальными условиями используемых исходных выборок речи и шума. Более подробную информацию можно найти в Wiki Nisqa Corpus.
Copyright © 2021 Габриэль Миттаг
www.qu.tu-berlin.de