CN112466313B - 一种多歌者歌声合成方法及装置 - Google Patents
一种多歌者歌声合成方法及装置 Download PDFInfo
- Publication number
- CN112466313B CN112466313B CN202011367298.1A CN202011367298A CN112466313B CN 112466313 B CN112466313 B CN 112466313B CN 202011367298 A CN202011367298 A CN 202011367298A CN 112466313 B CN112466313 B CN 112466313B
- Authority
- CN
- China
- Prior art keywords
- phrase
- phoneme
- duration
- singer
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002194 synthesizing effect Effects 0.000 title claims abstract description 24
- 239000013598 vector Substances 0.000 claims abstract description 107
- 238000001228 spectrum Methods 0.000 claims abstract description 62
- 238000012549 training Methods 0.000 claims abstract description 26
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 23
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 23
- 239000011295 pitch Substances 0.000 claims description 41
- 238000010606 normalization Methods 0.000 claims description 19
- 230000003595 spectral effect Effects 0.000 claims description 13
- 101150047731 MTDH gene Proteins 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000001308 synthesis method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 241000207840 Jasminum Species 0.000 description 2
- 235000010254 Jasminum officinale Nutrition 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000004821 distillation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
- G10L2015/025—Phonemes, fenemes or fenones being the recognition units
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
本发明公开了一种多歌者歌声合成方法,属于语音合成技术领域。该合成方法,包括包含模型训练和模型推理两阶段,模型推理部分最终部署于装置中。模型训练包括:获取多歌者歌声数据,并提取乐句特征、音素发音时长和音频频谱特征,其中各个乐句特征和音素发音时长按照歌词所展开的音素序列顺序排列,并且其长度和音素个数保持一致,发音时长的总帧数和对应频谱总帧数保持一致;为不同歌者的数据库生成歌者向量;将乐句特征和歌者向量作为模型的输入、将频谱特征和发音时长作为模型拟合的目标联合训练模型。模型采用对抗生成网络技术用以区分不同歌者的音色和发音特点,并保持合成歌声质量接近原声。
Description
技术领域
本发明涉及语音合成技术领域,更具体的说是涉及一种多歌者歌声合成方法及装置。
背景技术
随着歌声合成技术的逐渐完善,由此技术衍生的虚拟偶像、唱歌机器人、音乐教育以及音乐泛娱乐应用等也逐步进入人们的生活,同时也对歌声合成的质量、可控性、多样性提出更高的要求。多歌者歌声合成是一门利用一个模型产生多个不同歌者音色的歌声合成技术,该技术输入乐谱和指定的歌者信息合成出指定歌者音色的歌声,从而实现歌声合成的多样性。多人语音合成技术已逐渐成熟,但多歌者歌声合成技术依然存在巨大的挑战并且在业界鲜有人尝试。
由于歌声数据库获取成本高、数据量小以及不同音高分布不均衡,直接采取多人语音合成的方法实现多歌者歌声成容易造成模型对数据欠拟合以及模型参数对不同歌者过于平均,导致歌声发音不清晰、歌者之间音色区分度低。
发明内容
本发明的目的在于提供一种多歌者歌声合成方法及装置,以期解决上述技术问题。
为了实现上述目的,本发明采用以下技术方案:
1、一种多歌者歌声合成方法,其特征在于,包括训练阶段和推理阶段:
训练阶段包括以下步骤:
S11.解析多歌者歌声数据,并提取数据的乐句特征、乐句对应的音素发音时长和乐句对应的音频频谱特征;
S12.为每个歌声数据库生成歌者向量;
S13.将乐句特征和歌者向量作为模型输入,频谱特征和发音时长作为模型输出,并采用生成对抗网络作为模型的损失函数联合训练该模型;
推理阶段包括以下步骤:
S21.解析乐谱并提取乐谱的乐句特征,生成歌者向量;
S22.将步骤S21所获取的乐句特征和歌者向量共同输入到S13得到的模型,从模型编码器得到声学特征,从模型的时长预测器得到每个音素的发音时长;
S23.根据乐谱中乐句时长调整其所对应合成音素的发音时长;
S24.根据每个音素的发音时长扩展声学特征,并将扩展之后的声学特征输入到模型解码器生成频谱;
S25.利用步骤S24为每个乐句生成的频谱输入到声码器生成乐句相应歌声音频片段,并将所有音频片段按照乐句在乐谱中的出现顺序拼接为完整的歌声音频。
近一步地,所述步骤S11包括:
对多个歌者的乐谱数据文件解析出歌词、音符音高和音符时长信息;
按照乐谱中休止符的位置将每张乐谱分割成多个乐句,休止符归属于该休止符之前的乐句;
将每个乐句相应的歌词信息转换为声韵级别的音素序列,按照歌词顺序排列音素序列,并将排列后音素序列映射为整数向量;
将每个乐句相对应的音符音高信息和音符时长信息按照顺序排列的音素序列分别展开,得到和音素序列个数一致的音符音高序列和音符时长序列,并将音符音高序列和音符时长序列分别映射为整数向量和浮点数向量;
从乐谱所包含歌词对应的音素发音时长文件解析出每个音素的发音时长,然后根据该乐谱相应的多个乐句将音素发音时长序列分割为与乐句相应的多个音素发音时长序列,并将以秒为单位的每个音素发音时长序列转换为以帧为单位的发音时长整数向量;
将乐谱对应的音频文件根据该乐谱对应的多个乐句时长切分为多个音频片段,并提取每个音频片段的频谱特征,频谱特征包扩但不限于线性谱和梅尔频谱。
近一步地,所述步骤S12包括:每个歌者向量由一个整数向量表示,该向量的维度与乐句相应的音素序列长度一致,所述歌者向量的元素值相同,代表歌者的序号,一张乐谱对应一个序号,一个序号对应多张乐谱。
近一步地,所述步骤S13包括:
所述模型的输入包含乐句特征和歌者向量,所述模型的输出包含发音时长向量和音频特征,其中乐句特征由音素向量、音符音高向量、音符时长向量构成;
所述模型包含五个部分:嵌入层、编码器、时长预测器、解码器和判别器;
将输入音素向量、音符音高向量、音符时长向量和歌者向量分别通过所述模型最前层的四个嵌入网络层用于提取各个特征的隐特征,然后将四个嵌入层输出的隐特征相加继续传递给模型;
编码器将各个嵌入层之和作为输入,产生音素级别的声学特征;
时长预测器将各个嵌入层之和作为输入,产生每个音素发音帧数,并根据发音帧数扩展音素级别的声学特征为帧级别的声学特征;
将帧级别的声学特征输入解码器得到频谱特征;
频谱特征输入判别器用以判断模型生成的频谱是否接近真实频谱;
编码器和解码器结构包括但不限于Tacotron2、FastSpeech2,时长预测器和判别器包括但不限于多层一维卷积神经网络。
近一步地,所述步骤S21包括:
任意指定训练集内或集外乐谱作为模型推理的输入,包括自定义乐谱音符以及歌词;
将乐谱按照休止符位置分割成多个乐句,每个乐句可以指定不同的歌者,但歌者信息必须都来自训练集内;
乐句特征的提取方法和步骤S11中提取数据的乐句特征的方法一致,随后将乐句特征和指定的歌者向量一起作为模型输入;如果输入乐谱出现中文以外的歌词以及训练乐谱未出现的音符,那么将不处理该歌词和音符所在乐句转而继续处理其他乐句。
近一步地,所述步骤S22包括:
编码器和时长预测器的输入是同样的特征,它们并行地分别产生音素的声学特征和音素的发音时长。
近一步地,所述步骤S23包括:
用乐句的理论时长归一化该相应的音素序列的预测发音时长,使得音素序列的预测发音时长之和等于相应乐句的理论时长,其中归一化方式采取乐句中每个音符对应的音素与该音符的比例方式或采取乐句中每个音素与乐句总时长比例的方式。
近一步地,所述步骤S24包括:
根据步骤S1归一化得到的音素序列时长,将音素级别的声学特征按时间轴方向扩展为帧级别的声学特征;将帧级别的声学特征输入到模型编码器得到长度和帧级别的声学特征一样的频谱特征。
近一步地,所述步骤S25包括:
采用的声码器包括可以合成线性谱或梅尔谱的声码器,包括但不限于WaveNet、WWavRNN、LPCNet、WaveGlow、MelGAN;
每次从声码器合成一个乐句所对应的音频,然后根据乐句在乐谱中的位置将对应音频拼接在一起形成完整的歌声作品;拼接时保证乐句对应音频的开始时间和乐句在乐谱中的开始时间时间一致。
本发明还提供了一种多歌者歌声合成装置,包括:
乐谱编辑模块,用于提供乐谱显示和编辑界面,并提供选择乐谱、上传乐谱、新建乐谱和编辑乐谱接口,使得使用者创作、修改音乐作品;
乐谱处理模块,用于将乐谱中的歌词转换为音素序列以及提取音素序列对应的音符音高序列、音符时长序列,并将他们分别量化为数字向量以便后续输入到模型;
多歌者选择模块,用于选择待合成乐句的歌者信息,歌者信息表示为一个整数向量,使得模型生成指定歌者音色的歌声;该向量维度和乐句对应的音素序列长度一致,向量的所有元素值一样,元素值代表歌者的序号;
频谱合成模块,用于输入乐句特征向量和歌者向量,输出待合成歌声的频谱,并保证频谱时长和乐谱时长一致;
音频合成模块,用于输入歌声的频谱特征,输出歌声音频。
本发明提出一种多歌者歌声合成方法和装置,用以解决单个模型合成多个歌者的歌声。该方法包含模型训练和模型推理两阶段,模型推理部分最终部署于装置中。模型训练包括:获取多歌者歌声数据,并提取乐句特征、音素发音时长和音频频谱特征,其中各个乐句特征和音素发音时长按照歌词所展开的音素序列顺序排列,并且其长度和音素个数保持一致,发音时长的总帧数和对应频谱总帧数保持一致;为不同歌者的数据库生成歌者向量;将乐句特征和歌者向量作为模型的输入、将频谱特征和发音时长作为模型拟合的目标联合训练模型。模型采用对抗生成网络技术用以区分不同歌者的音色和发音特点,并保持合成歌声质量接近原声。
模型推理包括:提取待合成的乐句特征和歌者向量;将以上两者信息共同输入模型编码器和时长预测器分别得到声学特征和发音时长;提供音符归一化和乐句归一化方法,根据乐谱中乐句时长将其调整所合成乐句的发音时长;根据每个音素的发音时长扩展声学特征使得每个音素的声学特征数量为发音时长帧数,并将扩展之后的特征输入模型解码器生成频谱;由声码器将频谱转换为歌声。在保证端到端歌声合成质量条件下,实现可控性强的多歌者选择的歌声合成方法。
本发明与现有技术相比具有的有益效果是:
本专利通过引入歌者向量和生成对抗技术到端到端歌声合成模型实现高质量、高可控的多歌者歌声合成,模型包含四个部分:编码器、时长预测器、解码器和判别器。编码器高效地产生音素级别的声学特征;时长预测器产生每个音素发音帧数,便于后期个性化时长控制;解码器的输入为由发音帧数扩展音素级别的声学特征为帧级别的声学特征,输出频谱;判别器用以判断模型生成的频谱是否接近真实频谱从而更进一步地迭代优化整个模型。判别器经过不断学习和优化可以判别生成频谱的真实性以及歌者身份使得模型最终产生频谱所包含的音色信息具有较高区分度。
模型采用对抗生成网络技术用以区分不同歌者的音色和发音特点,并保持合成歌声质量接近原声。模型推理包括:提取待合成的乐句特征和歌者向量;将以上两者信息共同输入模型编码器和时长预测器分别得到声学特征和发音时长;提供音符归一化和乐句归一化方法,根据乐谱中乐句时长将其调整所合成乐句的发音时长;根据每个音素的发音时长扩展声学特征使得每个音素的声学特征数量为发音时长帧数,并将扩展之后的特征输入模型解码器生成频谱;由声码器将频谱转换为歌声。在保证端到端歌声合成质量条件下,实现可控性强的多歌者选择的歌声合成方法。
附图说明
图1为本发明实施例所述一种多歌者歌声合成方法的流程示意图。
图2为本发明实施例所述的模型结构示意图。
图3为本发明实施例所述的音符归一化和乐句归一化示意图。
具体实施方式
下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。
实施例1:
本发明提供一种多歌者歌声合成方法,该方法可有由一个软件装置或者硬件装置实现。图1为本发明实施例提供的多歌者歌声合成方法的流程示意图,在本实施例中模型训练阶段包括以下步骤:
S11.解析多歌者歌声数据,并提取数据的乐句特征、乐句对应的音素发音时长和乐句对应的音频频谱特征;
多个歌声数据集可通过向专业数据公司、音乐公司购买或者自己录制方式获得。每个歌者对应的数据包括乐谱文件、乐谱对应的歌声音频文件和乐谱中歌词对应的音素发音时长文件。较佳地,为了更方便解析数据,乐谱文件、音频文件和音素发音时长标注文件的格式分别采用MusicXML、wav和TextGrid。
考虑到模型训练时计算机内存的限制以及模型收敛速度,实施例首先将乐谱根据休止符切分为多个乐句,然后再进行特征提取。举例说明,歌词“好一朵美丽的茉莉花-芬芳美丽满枝桠-”中“-”表示休止符,则根据“-”切分后的乐句有两句:“好一朵美丽的茉莉花”和“芬芳美丽满枝桠”。
本发明实施例所需的乐句特征包括:歌词相应的音素序列、音素序列相应的音符音高序列以及音素序列相应的音符时长序列。
其中,歌词从乐谱文件中的<text>标签获取,歌词标注既可以是汉字也可以是拼音。可选地,如果歌词标注为汉字,则需要利用拼音转换工具转换为拼音,最后将拼音拆分为声韵母级别的音素序列。举例说明,歌词“茉莉花”转换为拼音为“mo li hua”,进一步转为音素序列为“m o l i h ua”。根据音素总数量音素序列可以经一步映射为数字向量,比如此句歌词映射结果为“23 32 45 11 29”。
其中,本发明实施例中音素序列相应的音符音高序为绝对音高,首先从乐谱文件中的<step>标签、<alter>标签和<octave>标签分别获取音级、音符升降的半音数量和所在八度,随后将音级1-7根据12平均律映射到0-11,则绝对音高计算公式为:绝对音高=映射后的step+alter+octave。根据乐句相应的音素个数将音符级别的音符音高序列展开成音素级别作为乐句特征中的音符音高向量。
其中,本发明实施例中音素序列相应的音符时长序列以秒为单位,为计算该时长首先从乐谱文件中的<duration>标签、<divisions>标签和<divisions>标签分别获取音符时值、四分音符的时值和每分钟拍数,则绝对音符时长就算公式为:绝对音符时长=duration/divisions/divisions*60。根据乐句对应音素个数将音符级别的音符时长序列展开成音素级别作为乐句特征中的音符时长向量。
可选地,频谱特征提取自音频文件,包扩但不限于线性谱和梅尔频谱。
S12.为每个歌声数据库生成歌者向量;
每个歌者向量由一个正整数向量表示,向量中元素相同,元素值代表歌者的序号。一张乐谱对应一个序号,一个序号可以对应多张乐谱。
举例说明,假如有四个歌声数据库,分别指定0,1,2,3作为歌者表示给四个数据库,每个数据库所包含乐谱切分之后的乐句指定的相同的数字。假如待处理乐句对应的音素序列为“m o l i h ua”,歌者选择序号2,那么歌者向量为“2 2 22 2 2”。
S13.将乐句特征和歌者向量作为模型输入,频谱特征和发音时长作为模型输出,并采用生成对抗网络作为模型损失函数联合训练模型。
具体地,如图2所示,乐句特征(音素向量、音符音高向量、音符时长向量)和歌者向量分别通过模型最前层的四个嵌入网络层用于提取各个特征的隐特征,然后将四个嵌入层输出的隐特征相加继续传递给模型。模型包含四个部分:编码器、时长预测器、解码器和判别器。编码器接受嵌入层的输出,产生音素级别的声学特征;时长预测器接受嵌入层的输出,产生每个音素发音帧数,随后根据发音帧数扩展音素级别的声学特征为帧级别的声学特征;帧级别的声学特征输入解码器得到频谱特征;频谱特征输入判别器用以判断模型生成的频谱是否接近真实频谱。
举例说明,歌词“好啊”对应的音素序列为“h ao a”,此时乐句特征中的音素向量、音符音高向量、音符时长向量的维度都应为3。随后将乐句特征和歌者向量分别经过嵌入层经一步提取隐特征,再将所有隐特征相加输入分别输入给编码器和时长预测器。其中,编码器得到3个与输入音素向量维度对应的声学特征,时长预测器得到3个与输入音素向量维度对应的音素发音时长。如图2中“扩展声学”操作所示,根据音素发音时长将3个音素对应的声学特征(灰色、绿色、蓝色)分别扩展为2、1和2帧,即声学特征由原来3帧变成扩展之后5帧。
扩展之后的声学特征传递给解码器,解码器输出的频谱即可用于生成歌声。但为了提升生成频谱的质量,本专利设计将频谱继续输入到后续判别器,随着模型不断迭代判别器的能力也会增强,从而迫使解码器生成的频谱更接近于真实频谱情况。虽然歌者向量能一定程度区分模型对不同歌者音色的表达,但实际情况表明模型无法完全对歌者信息解耦。引入生成对抗技术有效地提升了模型对不同歌者音色的区分能力,同时保持歌声合成音质接近真实原声。
可选地,编码器和解码器结构包括但不限于Tacotron2、FastSpeech2,时长预测器和判别器包括但不限于多层一维卷积神经网络。
本实施例中,模型推理阶段包括以下步骤:
S21.解析乐谱并取乐谱的乐句特征,生成歌者向量;
可选地,任意指定训练集内或集外乐谱作为模型推理的输入,包括自定义乐谱音符以及歌词。
乐谱按照休止符切分成多个乐句,每个乐句可以指定不同的歌者,但歌者信息必须都来自训练集内。乐句特征的提取方法和步骤S11中所述一致,随后将从乐句提取的乐句特征和指定的歌者向量一起作为模型输入。此外,如果输入乐谱出现中文以外的歌词以及训练乐谱未出现的音符,那么将不处理该歌词和音符所在乐句转而继续处理其他乐句。例如,如果训练集音符的音高范围为C3-D6,待合成乐句中出现音符F6或者歌词包含英文单词,那么就不合成该乐句。
S22.将步骤S21所提取的特征共同输入到模型,从模型的编码器得到声学特征,从模型的时长预测器得到每个音素的发音时长;
模型编码器和时长预测器均采用前馈类性网络的非自回归方式建模,所以模型推理速度快于RNN(循环神经网络)类型的自回归网络结构。应当理解地,模型编码器和时长预测器输出的序列长度应和输入的特征序列长度保持一致。可选地,模型编码器输入维度设为256。模型编码器的输出表示音素序列对应的声学特征,时长预测模型的输出表示音素序列每个音素的发音时长。
S23.根据乐谱中乐句时长调整其所对应合成音素的发音时长;
具体地,时长预测模型对一个乐句对应的音素序列所预测的总时长不能保证和给定乐句的理论时长(即,乐句中所有音符的时长相加)一致,所以需要用乐句的理论时长归一化该相应的音素序列的预测发音时长使得音素序列的预测发音时长之和等于相应乐句的理论时长。
具体地,用乐句的每个音符时长归一化所对应预测的音素序列的发音时长,使得该音符所对应的音素序列的发音时长之和等于该音符的绝对时长。具体归一化公式为:每个音素对应的预测发音时长=每个音素对应的预测发音时长/该音素对应音符下所有音素时长之和*相应音符的绝对时长。举例说明,乐句中音符“C3 C5”分别对应的音素序列为“ni”,“h ao”,理论音符时长为“2,1”秒,音素序列经过时长预测器得到的时长序列为“1,0.5”,“0.2,0.7”。此时可以发现模型对4个音素预测的时长之和1+0.5+0.2+0.7=2.4,而所它们所对应音符理论时长之和为2+1=3,由此可见两者时长并不相等。按照上述方法归一化的结果分别为:
“1/(1+0.5)*2,0.5/(1+0.5)*2”,“0.2/(0.2+0.7)*1,0.7/(0.2+0.7)*1”。此归一化方法为音符级别,听觉上可能会对乐句局部造成损伤。
较佳地,用乐句的所有音符时长之和归一化该乐句对应的预测音素序列的发音时长,使得该乐句对应的预测音素序列的发音时长之和等于该乐句所有音符时长之和。此方法有效地避免了音符级别归一化对乐句听觉上造成的局部损伤。具体归一化公式为:每个音素对应的预测发音时长=每个音素对应的预测发音时长/该乐句所有预测音素时长之和*该乐句所有音符时长之和。举例说明,乐句中音符“C3 C5”分别对应的音素序列为“ni”,“h ao”,理论音符时长为“2,1”秒,音素序列经过时长预测器得到的时长序列为“1,0.5”,“0.2,0.7”。按照上述方法归一化的结果分别为:“1/(1+0.5+0.2+0.7)*(2+1),0.5/(1+0.5+0.2+0.7)*(2+1)”,“0.2/(1+0.5+0.2+0.7)*(2+1),0.7/(1+0.5+0.2+0.7)*(2+1)”。
为了便于理解以上两种归一化方法,图3给出分别利用音符归一化和乐句归一方法处理乐句“a e o”相互比较的示意图。对于图中每种归一化案例,上排横线表示乐句音符时间位置,下排横线表示模型合成音素的位置,归一化过程是将下排时间轴上的音素开始结束位置按照箭头方向归一到上排时间轴位置,使得上下排相应的时间轴对齐。
S24.根据每个音素的发音时长扩展声学特征,并将扩展之后的声学特征输入到模型解码器生成频谱;
不同于Sequence2Sequence结构的网络,为了提升时长预测的准确性本专利实施例提供的网络不实现音频帧和输入特征序列自己学习对齐,而是实现相对独立的时长预测模型得到发音时长从而通过扩展声学特征得到对其目的。具体的对齐操做类似于S12,如图2中“扩展声学特征”操作所示,其本质是将音素对应的声学特征复制n份形成新的声学特征序列,其中n表示该音素经过时长预测模型输出的以帧为单位的正整数时长。
可选地,此步骤可以提供灵活可控的发音时长编辑,使用者可以通过增减音符数量、修改音符类型等方式达到改变发音时长的目的。
S25.利用步骤S24为每个乐句生成的频谱输入到声码器生成乐句相应歌声音频片段,并将所有音频按片段按照乐句在乐谱中的出现顺序拼接为完整的歌声音频。
采用的声码器包括可以合成线性谱或梅尔谱的声码器,包括但不限于WaveNet、WavRNN、LPCNet、WaveGlow和MelGAN。较佳地,若速度优先则选择MelGAN,若质量优先则选择WaveNet。每次从声码器合成一个乐句所对应的音频,然后根据乐句在乐谱中的位置将对应音频拼接在一起形成完整的歌声作品。拼接时保证乐句对应音频段在整首歌声音频的开始时间和乐句在乐谱中的开始时间一致。
本发明实施例步骤S23保证了乐句所对应的合成歌声时长与该乐句的理论总时长一致。但由于步骤S21切分乐句是按照休止符出现位置进行切分,故容易出现连续几个休止符被切分后中间没有任何乐句情况。例如,歌词“啊---”中出现3个休止符,则切分后的乐句分别为:“啊-”,“-”,“-”,其中后面2个乐句没有歌词内容所以不参到模型推理。
为了处理以上连续休止符没有对应的合成音频段问题,本专利设置在整首歌声音频中对应连续休止符位置的音频值为0,这种处理方式结果体现在听觉上为无声。而不是将连续的休止符输入模型合成得到音频,从而降低模型不必要的合成资源消耗。
实施例2
本发明实施例所述的一种多歌者歌声合成装置,包括:
乐谱编辑模块,装置提供乐谱显示和编辑界面,并提供选择乐谱、上传乐谱、新建乐谱和编辑乐谱接口,使得使用者可以自由创作、修改音乐作品;
具体地,本模块接受的输入为乐谱,乐谱的获得形式包括:装置提供乐谱列表让使用者选择、用户自己上传乐谱到装置、编辑装置提供的乐谱、编辑用户自己上传的乐谱和新建乐谱。
可选地,乐谱的编辑元素包括谱号、调号、拍号、调性、歌词和音符类型。以上元素的编辑直接影响合成歌声中每个音素的演唱内容、音高、发音持续时长和整体效果。举例说明,假如某乐句对应歌词为“今天天气不错”,音符音高为“C3 D3 B3 E3 E3 B2”,则可将歌词修改为“今天天气很差”,音高修改为“C3 D3 B3 E3 E3 B2”。应理解地,歌词字数应保持和音符对齐,不能出现歌词上没有对应音符的情况。
乐谱处理模块,用于转换谱中的歌词为音素序列以及提取音素序列对应的音符音高序列、音符时长序列,并将他们分别量化为数字向量以便后续输入到模型;
具体地,根据乐谱中出现休止符位置将乐谱切分成多个乐句便于后续合成,若乐谱出现连续多个休止符,则模块不处理该连续休止符串。随后模块依次从每个切分的乐句中提取模型输入所需的特征,其中包括音素向量、音符音高向量和音符时长向量。从乐谱文件中的<text>标签获提取歌词,歌词标注既可以是汉字也可以是拼音。
如果歌词标注为汉字,则需要利用拼音转换工具转换为拼音。最后将拼音拆分为声韵母级别的音素序列,并将音素序列映射为数字向量。从乐谱文件中的<step>标签、<alter>标签和<octave>标签分别获取音级、音符升降的半音数量和所在八度,随后将音级1-7根据12平均律映射到0-11,则绝对音高计算公式为:绝对音高=映射后的step+alter+octave。
根据乐句对应音素个数将音符级别的音符音高序列展开成音素级别作为乐句特征中的音符音高向量。从乐谱文件中的<duration>标签、<divisions>标签和<divisions>标签分别获取音符实值、四分音符的时值和每分钟拍数,则绝对音符时长就算公式为:绝对音符时长=duration/divisions/divisions*60。根据乐句对应音素个数将音符级别的音符时长序列展开成音素级别作为乐句特征中的音符时长向量。
多歌者选择模块,用于选择待合成乐句的歌者,歌者信息表示为一个整数向量,使得模型可生成指定歌者音色的歌声。该向量维度和乐句对应的音素序列长度一致,向量的所有元素值一样,元素值代表歌者的序号;
具体地,本模块提供所有训练集中歌者编号,用0~m-1中的数字表示,其中m表示歌者的总人数。若不选择歌者编号,本装置设编号0为默认歌者。
频谱合成模块,用于输入乐句特征向量和歌者向量,输出待合成歌声的频谱,并保证频谱时长和乐谱时长一致。
该模块接受乐句特征向量和歌者向量,两者作为模型的输入分别经过模型编码器和模型时长预测器得到音素级别的声学特征和音素时长序列。音素时长序列经过调整满足其总时长等于乐句时长。随后根据调整后的音素时长序列扩展音素级别的声学特征为帧级别的声学特征,声学特征经过模型解码器即可获得歌声对应的频谱特征。可选地,若所部署的装置有资源限制,则需要对以上模型做相应的模型优化工作,比如模型蒸馏、模型剪纸、精度量化等。
音频合成模块,用于输入歌声的频谱特征,输出歌声音频。
可选地:采用的声码器包括可以合成线性谱或梅尔谱的声码器,包括但不限于WaveNet、WavRNN、LPCNet、WaveGlow和MelGAN。较佳地,若速度优先则选择MelGAN,若质量优先则选择WaveNet。可选地,若所部署的装置有资源限制,则需要对以上模型做相应的模型优化工作,比如模型蒸馏、模型剪纸、精度量化等。可选地,合成的音频既以流式播放,也可以保存为音频文件。但以上两种形式都需要严格保持歌声内容和乐谱之间时间上同步。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多歌者歌声合成方法,其特征在于,包括训练阶段和推理阶段:
训练阶段包括以下步骤:
S11.解析多歌者歌声数据,并提取数据的乐句特征、乐句对应的音素发音时长和乐句对应的音频频谱特征;乐句特征由音素向量、音符音高向量、音符时长向量构成;
S12.为每个歌声数据库生成歌者向量;
S13.将乐句特征和歌者向量作为模型输入,频谱特征和发音时长作为模型输出,并采用生成对抗网络作为模型的损失函数联合训练该模型;
推理阶段包括以下步骤:
S21.解析乐谱并提取乐谱的乐句特征,生成歌者向量;
S22.将步骤S21所获取的乐句特征和歌者向量共同输入到S13得到的模型,从模型编码器得到声学特征,从模型的时长预测器得到每个音素的发音时长;
S23.根据乐谱中乐句时长调整其所对应合成音素的发音时长;
S24.根据每个音素的发音时长扩展声学特征,并将扩展之后的声学特征输入到模型解码器生成频谱;
S25.利用步骤S24为每个乐句生成的频谱输入到声码器生成乐句相应歌声音频片段,并将所有音频片段按照乐句在乐谱中的出现顺序拼接为完整的歌声音频。
2.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S11包括:
对多个歌者的乐谱数据文件解析出歌词、音符音高和音符时长信息;
按照乐谱中休止符的位置将每张乐谱分割成多个乐句,休止符归属于该休止符之前的乐句;
将每个乐句相应的歌词信息转换为声韵级别的音素序列,按照歌词顺序排列音素序列,并将排列后音素序列映射为整数向量;
将每个乐句相对应的音符音高信息和音符时长信息按照顺序排列的音素序列分别展开,得到和音素序列个数一致的音符音高序列和音符时长序列,并将音符音高序列和音符时长序列分别映射为整数向量和浮点数向量;
从乐谱所包含歌词对应的音素发音时长文件解析出每个音素的发音时长,然后根据该乐谱相应的多个乐句将音素发音时长序列分割为与乐句相应的多个音素发音时长序列,并将以秒为单位的每个音素发音时长序列转换为以帧为单位的发音时长整数向量;
将乐谱对应的音频文件根据该乐谱对应的多个乐句时长切分为多个音频片段,并提取每个音频片段的频谱特征,频谱特征包扩但不限于线性谱和梅尔频谱。
3.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S12包括:
每个歌者向量由一个整数向量表示,该向量的维度与乐句相应的音素序列长度一致,所述歌者向量的元素值相同,代表歌者的序号,一张乐谱对应一个序号,一个序号对应多张乐谱。
4.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S13包括:
所述模型的输入包含乐句特征和歌者向量,所述模型的输出包含发音时长向量和音频特征,其中乐句特征由音素向量、音符音高向量、音符时长向量构成;
所述模型包含五个部分:嵌入层、编码器、时长预测器、解码器和判别器;
将输入音素向量、音符音高向量、音符时长向量和歌者向量分别通过所述模型最前层的四个嵌入网络层用于提取各个特征的隐特征,然后将四个嵌入层输出的隐特征相加继续传递给模型;
编码器将各个嵌入层之和作为输入,产生音素级别的声学特征;
时长预测器将各个嵌入层之和作为输入,产生每个音素发音帧数,并根据发音帧数扩展音素级别的声学特征为帧级别的声学特征;
将帧级别的声学特征输入解码器得到频谱特征;
频谱特征输入判别器用以判断模型生成的频谱是否接近真实频谱;
编码器和解码器结构包括但不限于Tacotron2、FastSpeech2,时长预测器和判别器包括但不限于多层一维卷积神经网络。
5.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S21包括:
任意指定训练集内或集外乐谱作为模型推理的输入,包括自定义乐谱音符以及歌词;
将乐谱按照休止符位置分割成多个乐句,每个乐句可以指定不同的歌者,但歌者信息必须都来自训练集内;
乐句特征的提取方法和步骤S11中提取数据的乐句特征的方法一致,随后将乐句特征和指定的歌者向量一起作为模型输入;如果输入乐谱出现中文以外的歌词以及训练乐谱未出现的音符,那么将不处理该歌词和音符所在乐句转而继续处理其他乐句。
6.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S22包括:
编码器和时长预测器的输入是同样的特征,它们并行地分别产生音素的声学特征和音素的发音时长。
7.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S23包括:
用乐句的理论时长归一化该相应的音素序列的预测发音时长,使得音素序列的预测发音时长之和等于相应乐句的理论时长,其中归一化方式采取乐句中每个音符对应的音素与该音符的比例方式或采取乐句中每个音素与乐句总时长比例的方式。
8.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S24包括:
根据步骤S1归一化得到的音素序列时长,将音素级别的声学特征按时间轴方向扩展为帧级别的声学特征;将帧级别的声学特征输入到模型编码器得到长度和帧级别的声学特征一样的频谱特征。
9.根据权利要求1所述的一种多歌者歌声合成方法,其特征在于,所述步骤S25包括:
采用的声码器包括可以合成线性谱或梅尔谱的声码器,包括但不限于WaveNet、WWavRNN、LPCNet、WaveGlow、MelGAN;
每次从声码器合成一个乐句所对应的音频,然后根据乐句在乐谱中的位置将对应音频拼接在一起形成完整的歌声作品;拼接时保证乐句对应音频的开始时间和乐句在乐谱中的开始时间时间一致。
10.一种多歌者歌声合成装置,其特征在于,包括:
乐谱编辑模块,用于提供乐谱显示和编辑界面,并提供选择乐谱、上传乐谱、新建乐谱和编辑乐谱接口,使得使用者创作、修改音乐作品;
乐谱处理模块,用于将乐谱中的歌词转换为音素序列以及提取音素序列对应的音符音高序列、音符时长序列,并将他们分别量化为数字向量以便后续输入到模型;
多歌者选择模块,用于选择待合成乐句的歌者信息,歌者信息表示为一个整数向量,使得模型生成指定歌者音色的歌声;该向量维度和乐句对应的音素序列长度一致,向量的所有元素值一样,元素值代表歌者的序号;
频谱合成模块,用于输入乐句特征向量和歌者向量,输出待合成歌声的频谱,并保证频谱时长和乐谱时长一致;乐句特征由音素向量、音符音高向量、音符时长向量构成;
音频合成模块,用于输入歌声的频谱特征,输出歌声音频。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011367298.1A CN112466313B (zh) | 2020-11-27 | 2020-11-27 | 一种多歌者歌声合成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011367298.1A CN112466313B (zh) | 2020-11-27 | 2020-11-27 | 一种多歌者歌声合成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112466313A CN112466313A (zh) | 2021-03-09 |
CN112466313B true CN112466313B (zh) | 2022-03-15 |
Family
ID=74809421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011367298.1A Active CN112466313B (zh) | 2020-11-27 | 2020-11-27 | 一种多歌者歌声合成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112466313B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113257222B (zh) * | 2021-04-13 | 2024-06-11 | 腾讯音乐娱乐科技(深圳)有限公司 | 合成歌曲音频的方法、终端及存储介质 |
JP7578192B2 (ja) | 2021-05-18 | 2024-11-06 | ヤマハ株式会社 | 機械学習モデルを用いた音生成方法および音生成装置 |
CN113345453B (zh) * | 2021-06-01 | 2023-06-16 | 平安科技(深圳)有限公司 | 歌声转换方法、装置、设备及存储介质 |
CN113506560B (zh) * | 2021-07-21 | 2023-06-09 | 四川启睿克科技有限公司 | 一种保持音高的歌声合成方法及装置 |
TWI836255B (zh) * | 2021-08-17 | 2024-03-21 | 國立清華大學 | 透過歌聲轉換設計個人化虛擬歌手的方法及裝置 |
CN113744763B (zh) * | 2021-08-18 | 2024-02-23 | 北京达佳互联信息技术有限公司 | 确定相似旋律的方法和装置 |
CN113593520B (zh) * | 2021-09-08 | 2024-05-17 | 广州虎牙科技有限公司 | 歌声合成方法及装置、电子设备及存储介质 |
CN114974183A (zh) * | 2022-05-16 | 2022-08-30 | 广州虎牙科技有限公司 | 歌声合成方法、系统及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514874A (zh) * | 2012-06-27 | 2014-01-15 | 雅马哈株式会社 | 声音合成方法和声音合成设备 |
CN108461079A (zh) * | 2018-02-02 | 2018-08-28 | 福州大学 | 一种面向音色转换的歌声合成方法 |
CN109952609A (zh) * | 2016-11-07 | 2019-06-28 | 雅马哈株式会社 | 声音合成方法 |
CN110364140A (zh) * | 2019-06-11 | 2019-10-22 | 平安科技(深圳)有限公司 | 歌声合成模型的训练方法、装置、计算机设备以及存储介质 |
CN110738980A (zh) * | 2019-09-16 | 2020-01-31 | 平安科技(深圳)有限公司 | 歌声合成模型的训练方法、系统及歌声合成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10896669B2 (en) * | 2017-05-19 | 2021-01-19 | Baidu Usa Llc | Systems and methods for multi-speaker neural text-to-speech |
-
2020
- 2020-11-27 CN CN202011367298.1A patent/CN112466313B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514874A (zh) * | 2012-06-27 | 2014-01-15 | 雅马哈株式会社 | 声音合成方法和声音合成设备 |
CN109952609A (zh) * | 2016-11-07 | 2019-06-28 | 雅马哈株式会社 | 声音合成方法 |
CN108461079A (zh) * | 2018-02-02 | 2018-08-28 | 福州大学 | 一种面向音色转换的歌声合成方法 |
CN110364140A (zh) * | 2019-06-11 | 2019-10-22 | 平安科技(深圳)有限公司 | 歌声合成模型的训练方法、装置、计算机设备以及存储介质 |
CN110738980A (zh) * | 2019-09-16 | 2020-01-31 | 平安科技(深圳)有限公司 | 歌声合成模型的训练方法、系统及歌声合成方法 |
Non-Patent Citations (2)
Title |
---|
"Mandarin Singing Synthesis Based on Generative Adversarial Network";Yun Zhou等;《2020 IEEE 3rd International Conference on Information Communication and Signal Processing (ICICSP)》;20201020;全文 * |
"面向音色转换的歌声合成方法研究";齐子铭;《中国优秀博硕士学位论文全文数据库(硕士)》;20200315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112466313A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112466313B (zh) | 一种多歌者歌声合成方法及装置 | |
CN112863483B (zh) | 支持多说话人风格、语言切换且韵律可控的语音合成装置 | |
US11468870B2 (en) | Electronic musical instrument, electronic musical instrument control method, and storage medium | |
JP4302788B2 (ja) | 音声合成用の基本周波数テンプレートを収容する韻律データベース | |
JP2022527970A (ja) | 音声合成方法、デバイス、およびコンピュータ可読ストレージ媒体 | |
CN112802450A (zh) | 一种韵律可控的中英文混合的语音合成方法及其系统 | |
JP4829477B2 (ja) | 声質変換装置および声質変換方法ならびに声質変換プログラム | |
CN112802446B (zh) | 音频合成方法及装置、电子设备和计算机可读存储介质 | |
CN112102811B (zh) | 一种合成语音的优化方法、装置及电子设备 | |
JP2023015302A (ja) | 電子機器、電子楽器、方法及びプログラム | |
CN115101046A (zh) | 一种特定说话人语音合成方法和装置 | |
Malcangi | Text-driven avatars based on artificial neural networks and fuzzy logic | |
CN113628609A (zh) | 自动音频内容生成 | |
JP3281266B2 (ja) | 音声合成方法及び装置 | |
WO2010104040A1 (ja) | 1モデル音声認識合成に基づく音声合成装置、音声合成方法および音声合成プログラム | |
CN112242134A (zh) | 语音合成方法及装置 | |
CN115273806A (zh) | 歌曲合成模型的训练方法和装置、歌曲合成方法和装置 | |
Pitrelli et al. | Expressive speech synthesis using American English ToBI: questions and contrastive emphasis | |
CN113506560B (zh) | 一种保持音高的歌声合成方法及装置 | |
CN117711374B (zh) | 一种视听一致个性化语音合成系统、合成方法及训练方法 | |
CN112951184B (zh) | 歌曲生成方法、装置、设备及存储介质 | |
EP1589524B1 (en) | Method and device for speech synthesis | |
JPH11352997A (ja) | 音声合成装置およびその制御方法 | |
CN113178185A (zh) | 基于转音音符处理方法的歌唱合成方法及系统 | |
CN117992169A (zh) | 一种基于aigc技术的平面设计展示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |