+++ 뉴스 : NISQA 모델은 최근 NISQA v2.0으로 업데이트되었습니다. 이 새로운 버전은 정확도가 높은 다차원 예측을 제공하며 모델을 교육하고 미세 조정할 수 있습니다.
언어 품질 예측 :
NISQA는 언어 품질 예측을위한 딥 러닝 모델/프레임 워크입니다. NISQA 모델 가중치는 통신 시스템 (예 : 전화 또는 화상 통화)을 통해 전송 된 음성 샘플의 품질을 예측하는 데 사용될 수 있습니다. NISQA는 전반적인 음성 품질 외에도 품질 차원 , 채색 , 불연속성 및 음량 에 대한 예측을 제공하여 품질 저하의 원인에 대한 통찰력을 제공합니다.
TTS 자연성 예측 :
NISQA-TTS 모델 가중치는 음성 변환 또는 텍스트 음성 시스템 (Siri, Alexa 등)에 의해 생성 된 합성 음성의 자연을 추정하는 데 사용될 수 있습니다.
훈련/양조 :
NISQA는 CNN 또는 DFF-> 자체 변환 또는 LSTM->주의 푸는 또는 최대 냉각과 같은 다양한 딥 러닝 아키텍처로 새로운 단일 엔드 또는 이중 엔드 언어 품질 예측 모델을 훈련시키는 데 사용될 수 있습니다. 제공된 모델 가중치는 또한 새로운 데이터에 대한 훈련 된 모델을 미세화하거나 다른 회귀 작업으로 전송 학습 (예 : 강화 된 음성의 품질 추정, 스피커 유사성 추정 또는 감정 인식)에 적용 할 수 있습니다.
음성 품질 데이터 세트 :
우리는 주관적인 언어 품질과 음성 품질 차원 레이블을 가진 14,000 개 이상의 음성 샘플의 대형 코퍼스를 제공합니다.
딥 러닝 모델 구조, 중고 교육 데이터 세트 및 교육 옵션에 대한 자세한 내용은 NISQA 용지 및 위키를 참조하십시오.
요구 사항을 설치하려면 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
CSV 테이블 사용에 나열된 모든 .wav 파일의 품질을 예측합니다.
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 파일에 저장됩니다 (-UTPUT_DIR의 선택 사항). 예측 속도를 높이기 위해 Pytorch Dataloader의 작업자 수와 배치 크기를 증가시킬 수 있습니다 (-num_workers 및 -bs에서는 선택 사항). 스테레오 파일의 경우 -MS_Channel을 사용하여 오디오 채널을 선택할 수 있습니다.
모델 가중치를 사용하여 새 데이터 세트의 모델을 미세화하려면 파일 이름과 레이블이있는 CSV 파일 만 필요합니다. 교육 구성은 YAML 파일에서 제어되며 다음과 같이 시작할 수 있습니다.
python run_train.py --yaml config/finetune_nisqa.yaml
NISQA 코퍼스가 사용되는 경우 YAML 파일에서 두 가지 인수 만 업데이트해야하며 출판 된 NISQA_CORPUS 폴더와 결과 output_dir data_dir
자신의 데이터 세트를 사용하거나 NISQA-TTS 모델을로드하려면 다른 업데이트가 필요합니다.
CSV 파일은 다음 이름의 최소 3 개의 열을 포함해야합니다.
dbfilepath_deg FilePath는 퇴화 된 WAV 파일, 절대 경로 또는 data_dir 와 관련하여 (CSV 열 이름을 YAML에서 변경할 수 있음)에 대한 filepathmos (CSV 열 이름을 YAML에서 변경할 수 있음) finetune_nisqa.yaml 은 다음과 같이 업데이트되어야합니다.
data_dir 경로output_dir 모델 가중치 및 결과가 저장된 출력 폴더로가는 경로pretrained_model 자연 스피치를위한 nisqa_mos_only.tar 또는 합성 된 연설을위한 nisqa_tts.tar 의 사전 취사 모델의 파일 이름csv_file FilePaths 및 Target Labels가있는 CSV의 이름csv_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 및 시간 의존성 모델을 건너 뛸 수 있습니다. 예를 들어 마지막 시간 예측 단계를 사용하는 CNN없이 LSTM 모델을 훈련시킬 수 있습니다. 또한 LSTM-self-intention 구조와 같은 두 번째 시간 의존성 단계를 추가 할 수 있습니다. 모델 구조는 YAML 구성 파일을 통해 쉽게 제어 할 수 있습니다. 표준 NISQA 모델 구성을 사용한 교육은 다음과 같이 NISQA 코퍼스에서 시작할 수 있습니다.
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
NISQA 코퍼스를 사용하는 경우 data_dir 만 uNSQA_CORPUS 폴더와 YAML 파일의 output_dir 로 업데이트해야합니다. 그렇지 않으면 사용자 정의 데이터 세트가 적용되는 경우 Yaml 파일을 업데이트하려면 이전의 Finetuning 섹션을 참조하십시오.
예를 들어, 자체 변환 대신 LSTM으로 모델을 훈련시키는 등 다른 신경망의 조합을 훈련시키는 것도 가능합니다. train_nisqa_cnn_lstm_avg.yaml 예제 구성 파일이 제공됩니다.
전체 참조 음성 품질 예측을위한 이중 엔드 모델을 훈련시키기 위해 train_nisqa_double_ended.yaml 구성 파일을 예로 사용할 수 있습니다. 가능한 모델 구조 및 고급 교육 옵션에 대한 자세한 내용은 Yaml 파일 및 Wiki (아직 추가되지 않음)의 의견을 참조하십시오.
훈련 된 모델은 주어진 데이터 세트에서 다음과 같이 평가 될 수 있습니다 (모델 설치의 적합성 테스트로서 사용될 수 있음).
python run_evaluate.py
실행하기 전에 Python Script run_evaluate.py 내부의 옵션과 경로를 업데이트해야합니다. NISQA 코퍼스를 사용하는 경우 data_dir 및 output_dir 경로 만 조정해야합니다. Pearson의 상관 관계 및 RMSE 외에도 1 차 다항식 매핑 후 RMSE도 계산됩니다. 조건 당 레이블이있는 CSV 파일이 제공되면 스크립트는 조건 당 결과 및 RMSE*도 출력합니다. 선택적으로 상관 다이어그램을 그릴 수 있습니다. 스크립트는 NISQA 코퍼스에서 실행될 때 NISQA 용지와 동일한 결과를 반환해야합니다.
NISQA 코퍼스에는 시뮬레이션 된 14,000 개 이상의 음성 샘플 (예 : 코덱, 패킷 손실, 배경 노이즈) 및 라이브 (예 : 휴대 전화, 줌, Skype, WhatsApp) 조건이 포함되어 있습니다.
다운로드 링크 및 데이터 세트 및 중고 소스 음성 샘플에 대한 자세한 내용은 NISQA Corpus Wiki를 참조하십시오.
NISQA 코드는 MIT 라이센스에 따라 라이센스가 부여됩니다.
모델 가중치 (nisqa.tar, nisqa_mos_only.tar, nisqa_tts.tar)는 Creative Commons Attribution-Noncommercial-Sharealike 4.0 International (CC By-NC-SA 4.0) 라이센스에 따라 제공됩니다.
NISQA 코퍼스는 중고 소스 음성 및 노이즈 샘플의 원래 용어로 제공됩니다. 자세한 내용은 Nisqa Corpus Wiki에서 확인할 수 있습니다.
Copyright © 2021 Gabriel Mittag
www.qu.tu-berlin.de