重点
- 提出一种捏音色和捏风格TTS大模型方案
- 扩量数据如何标注风格是难题:提出自动化标注音色,方言,风格,环境噪声(channe conditons),混响大小等属性
- 4.5W一般数据+500小时高质量数据,推理时通过指定“安静无混响高保真”得到录音级别音质,且可控音色和风格皆可控
调研
控制情感/风格/音色的现有方法梳理:
- GST:全局,局限于数据风格,不能无中生有实现捏的功能
- GMM或VAE:在latent space做插值和建模,可以捏音色;需要精细的tune模型,来保证latent token相互独立,且绑定特定的风格;这个问题GST也有;
- PromptTTS: 不需要在latent spcae做复杂分析,不需要考虑独立性,借鉴文生图用文字描述音色和风格;音色和风格在语音信号层面可解耦为Speaker emb,AccentID(SpokenLanguageID),pitch,speaking rate,环境噪声混响;利用NLP把文本描述和语音属性关联起来;
方法
数据处理
- mate开源的MLS(Multilingual LibriSpeech)ASR数据集,抽取4.5W英文数据,加500小时高保真LibriTTS;
- 通过Miipher增加干净数据量(SR:此处不是超分,Speech restoration语音恢复或重建,降噪去混响去瑕疵消除),不同于降噪超分模型,它和VC一个路数,wav2vec + text + spk输入;效果还可以,但音色相似度,pitch等会有轻微损失,可作为数据增强的一个手段
- AID提取:基于meta在“Scaling Speech Technology to 1,000+ Languages”开源的SID模型,在下游方言数据上finetune分类器;
- 环境噪声标注:通过Brouhaha library(Brouhaha: Multi-task training for voice activity detection, speech-to-noise ratio, and C50 room acoustics estimation),粗看了下2023发表,可做VAD,切片,SNR,C50混响计算,基于pyannote(2020);
- pitch和语速:方法略,最种可描述为“very fast”, “quite fast”, “fairly slowly”等
- 送给NLP生成promt:每种属性都在统计上分别几档,每档用几个单词描述,如“very good recording” , “female”,“slightly roomy sounding”,“fairly noisy”等;最种得到prompt例如:“a woman with a deep voice speaking slowly and somewhat monotonously with a Hungarian accent in an echoey room with background noise”
模型
- DAC:86Hz,9码本
- 参考AudioCraft中AudioGen,MusicGen模型结构,支持pre-pending, crossattention, summing, interpolation等prompt的condition方法
实验
https://github.com/huggingface/parler-tts
评估
- 语音属性与生成的prompt文本,和真人标签的相关性
- 音频评估:PESQ,STOI,SD-SDR,MOS