CN111435591A - 声音合成方法及***、音频处理芯片、电子设备 - Google Patents

声音合成方法及***、音频处理芯片、电子设备 Download PDF

Info

Publication number
CN111435591A
CN111435591A CN202010052787.1A CN202010052787A CN111435591A CN 111435591 A CN111435591 A CN 111435591A CN 202010052787 A CN202010052787 A CN 202010052787A CN 111435591 A CN111435591 A CN 111435591A
Authority
CN
China
Prior art keywords
signal
tone
sound
spectrum envelope
chain
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.)
Granted
Application number
CN202010052787.1A
Other languages
English (en)
Other versions
CN111435591B (zh
Inventor
方桂萍
闫玉凤
肖全之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Jieli Technology Co Ltd
Original Assignee
Zhuhai Jieli Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Jieli Technology Co Ltd filed Critical Zhuhai Jieli Technology Co Ltd
Priority to CN202010052787.1A priority Critical patent/CN111435591B/zh
Publication of CN111435591A publication Critical patent/CN111435591A/zh
Application granted granted Critical
Publication of CN111435591B publication Critical patent/CN111435591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/056MIDI or other note-oriented file format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/025Envelope processing of music signals in, e.g. time domain, transform domain or cepstrum domain
    • G10H2250/031Spectrum envelope processing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L2013/021Overlap-add techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

本发明涉及一种声音合成方法及***、音频处理芯片、计算机可读存储介质、电子设备,声音合成方法包括生成音色库步骤和声音合成步骤,生成音色库步骤中对声源信号进行滤基频和幅度归一化处理,把声源信号中的基频信息滤除掉,提取声源信息中的共振峰信息形成频谱包络线,并根据频谱包络线的相关度进行分组,形成音色库;声音合成步骤中将发声事件与音色库中的生成音色链或者默认音色链合成。本发明大大简化生成音色库的算法,提高音色库的生成效率,且能够节省音色库的占用空间。

Description

声音合成方法及***、音频处理芯片、电子设备
技术领域
本发明涉及音乐合成技术领域,尤其设计一种声音合成方法及***、音频处理芯片、计算机可读存储介质、电子设备。
背景技术
随着音频技术的发展,各种声音的合成越来越多,Midi文件等基于波表的合成方法也很常见。然而,这种合成方法往往是基于音频库的,音频库中已经包含了音频的基音,共振峰等信息。这种波表的存储空间较大,且在一些应用中,如实时合成声音的***时往往声源信号是直接录入进来的,需要实时处理,若按照波表的方式提取音色信息,则处理算法复杂,效率较低,且对***空间要求太大。
发明内容
基于上述现状,本发明的主要目的在于提供一种声音合成方法及***、音频处理芯片、计算机可读存储介质、电子设备,解决波表式音色库的占用空间。
为实现上述目的,本发明采用的技术方案如下:
本发明的第一方面提供了一种声音合成方法,包括步骤:
设置默认音色链;
生成音色库;和
声音合成;
其中,所述生成音色库的步骤包括:
S1:获取声源信号,所述声源信号包括至少一个信号帧;
S2:将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;
S3:根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库;
所述声音合成的步骤包括:
S4:获取乐谱信号;
S5:提取所述乐谱信号中当前时刻的各发声事件,然后对各所述发声事件执行S6;
S6:判断是否生成所述音色库,若是,则执行S7;若否,则执行S8;
S7:按照音色链选取规律将各所述发声事件和与其对应的所述生成音色链合成,得到输出音频,之后再执行S9;
S8:将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频,之后再执行S9;
S9:将各所述发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音;然后返回S5。
优选地,所述步骤S2具体包括:
S21:对所述信号帧加汉明窗后,再通过***基快速傅里叶变换转换为所述声源频域信号;
S22:对所述声源频域信号中各频段的值求能量绝对值,再求对数,得到对数幅度谱;
S23:对所述对数幅度谱进行离散余弦变换,调整直流分量幅度,滤除高频分量,得到滤波信号;
S24:对所述滤波信号进行离散余弦变换的反变换后,再求对数的反变换,得到所述信号帧对应的所述频谱包络线。
优选地,所述步骤S21具体包括:先判断所述信号帧是否为静音帧,若是,则返回所述步骤S1;若否,则对所述信号帧加汉明窗后再通过***基快速傅里叶变换转换为所述声源频域信号。
优选地,所述步骤S3具体包括:若当前频谱包络线与上一个所述频谱包络线的相关度在第一阈值内,或者所述当前频谱包络线与预设的低通频谱包络线的相关度在第二阈值内,则所述当前频谱包络线与上一所述频谱包络线分为同一所述生成音色链,同时更新所述低通频谱包络线;
若当前频谱包络线与上一个所述频谱包络线的相关度不在第一阈值内,且所述当前频谱包络线与预设的低通频谱包络线的相关度不在第二阈值内,则所述当前频谱包络线与上一所述频谱包络线分为不同的生成音色链,所述低通频谱包络线置零。
优选地,所述步骤S3具体包括:
S31:判断所述当前频谱包络线与上一所述频谱包络线的相关度是否在第一阈值内,若是,则执行S32;若否,则执行S33;
S32:将所述当前频谱包络线分组至当前生成音色链,且所述当前生成音色链的长度增加1,并按照env_lowpass=env_lowpass*0.6+env_now*0.4更新所述低通频谱包络线;
S33:判断所述当前频谱包络线与所述低通频谱包络线的相关度是否在第二阈值内,若是,则执行S34;否则执行S35;
S34:将所述当前频谱包络线分组至所述当前生成音色链中,且所述当前生成音色链的长度增加1,并按照env_lowpass=env_lowpass*0.2+env_last*0.6+env_now*0.2更新所述低通频谱包络线;
S35:将所述低通频谱包络线设置为0,并将所述当前频谱包络线分组至下一个生成音色链中,同时下一个生成音色链的长度加1;
其中,env_now表示当前频谱包络线;env_last表示上一频谱包络线;env_lowpass表示低通频谱包络线,初始的低通频谱包络线默认为0。
优选地,所述生成音色库步骤中,对于每一个所述信号帧执行完S2后即执行S3,然后再返回S1执行。
优选地,所述音色库存储于可循环覆盖式的环形存储空间内,所述环形存储空间包括有多个存储单元,每个所述存储单元存储一条所述生成音色链,当各所述存储单元均被使用后,新的所述生成音色链从起始的所述存储单元开始依次覆盖。
优选地,所述步骤S4中,通过读取midi文件获取所述乐谱信号,或者通过识别按键操作获取所述乐谱信号。
优选地,所述步骤S7具体包括:
根据所述发声事件的音高、力度和时长生成对应的脉冲信号,并通过加窗傅里叶变换将其转换为乐谱频域信号;
按照音色链选取规律与所述音色库中对应的所述生成音色链合成为乐谱合成音频信号;
然后对所述乐谱合成音频信号依次进行插值处理、傅里叶反变换,得到所述输出音频信号,之后再执行S9。
优选地,所述步骤S7中加窗傅里叶变换具体为:加余弦窗和进行***基快速傅里叶变换。
优选地,所述步骤S7中,得到所述输出音频信号之前还包括:
对所述合成音频信号依次进行插值处理、傅里叶反变换得到的第一音频信号,分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二音频信号和第三音频信号;
然后将所述第二音频信号相对于所述第三音频信号进行延时处理得到第四音频信号;
再将所述第三音频信号与所述第四音频信号进行叠加,从而得到所述输出音频信号。
优选地,所述步骤S7具体包括:
S721:提取所述发声事件的音高、力度和时长,并根据所述时长确定所述脉冲信号的脉冲波总个数N,设置已执行个数为0,以及确定每次生成的脉冲波的单次个数n;
S722:根据所述音高和所述力度生成所述发生事件对应的n个脉冲波,记为当前子信号;
S723:通过加窗傅里叶变换将所述当前子信号转换为脉冲波频域信号;
S724:按照音色链选取规律从所述音色库中选取与所述发声事件对应的所述生成音色链,然后选择所述生成音色链中与所述脉冲波频域信号对应的所述频谱包络线,并和所述脉冲波频域信号进行合成,得到脉冲波合成音频信号;
S725:对所述脉冲波合成音频信号依次进行插值处理、傅里叶反变换,得到第一子音频信号;
S726:将所述第一子音频信号作为输出子音频信号,并存储;
S727:设置已执行个数=已执行个数+单次个数n,然后判断所述已执行个数是否小于总个数N,若是,则返回S722;否则,各所述输出子音频信号形成所述输出音频信号,之后再执行S9。
优选地,所述步骤S721还包括:根据所述单次个数n设置对应的默认信号,作为上一子信号;
所述步骤S722具体包括:
根据所述音高和所述力度合成所述发声事件对应的n/2个脉冲波信号,作为所述当前子信号的后半部分;
然后将所述上一子信号的后半部分作为所述当前子信号的前半部分,与所述当前子信号的后半部分一起形成所述当前子信号;
所述S727中,若是,则返回S722,具体为:若是,则将所述当前子信号作为上一子信号,然后返回S722。
优选地,所述步骤S721还包括:设置帧叠信号的初始值为0;
所述步骤S725具体包括:
对所述脉冲波合成音频信号依次进行插值处理、傅里叶反变换之后,将得到的中间子信号与所述帧叠信号进行加权相加,得到所述第一子音频信号;然后将所述第一子音频信号作为帧叠信号。
优选地,所述步骤S726具体包括:
S7261:对所述第一子音频信号分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二子音频信号和第三子音频信号;
S7262:将所述第二子音频信号相对于所述第三子音频信号进行延时处理得到第四音子频信号;
S7263:将所述第子三音频信号与所述第四子音频信号进行叠加,从而得到所述输出子音频信号,并存储所述输出子音频信号。
优选地,所述第一组去相关滤波器和所述第二组去相关滤波器的滤波器表达式为:1/(1+a0*z.^(-n1))(1+a1*z^(-n2))(1+a2*z^(-n3);其中,两组滤波器中,n1、n2、n3均为质数,且不相等;a0、a1、a2为预设系数,且也不相等。
优选地,所述步骤S7中,按照音色链选取规律与所述音色库中对应的所述生成音色链合成为合成音频信号,具体包括:
S71:按照音色链选取规律从所述音色库中选取与所述发声事件对应的所述生成音色链;
S72:判断所述生成音色链的实际长度是否大于或者等于所述脉冲信号所需的音色链的预期长度;若是,则执行S73;否则,执行S74;
S73:从所述生成音色链中,依次选取所述预期长度的各所述频谱包络线与所述脉冲信号合成;
S74:对所述生成音色链的所述频谱包络线进行插值处理,使所述生成音色链的长度等于所述预期长度;然后依次选取所述预期长度的各所述频谱包络线与所述脉冲信号合成。
优选地,所述步骤S1中,通过麦克获取所述声源信号。
本发明的第二方面提供了一种声音合成***,包括:
音色库模块,获取声源信号,所述声源信号包括至少一个信号帧;将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;并根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库;
合成模块,与所述音色库模块连接,用于获取乐谱信号,提取所述乐谱信号中当前时刻的各发声事件,然后判断所述音色库是否包括所述生成音色链,若是,则按照音色链选取规律将所述乐谱信号中的各发声事件和与其对应的所述生成音色链合成,得到输出音频;若否,则将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频;最后将各所述发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音。
优选地,所述音色库模块包括:
包络生成单元:用于获取声源信号,所述声源信号包括至少一个信号帧;将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;
音色库单元,与所述包络生成单元连接,用于根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库。
优选地,所述合成模块包括:
获取单元,用于获取乐谱信号;
至少一个合成单元,各所述合成单元均与所述获取单元连接,各所述合成单元用于提取所述乐谱信号中的一个所述发声事件,然后判断所述音色库是否包括所述生成音色链,若是,则按照音色链选取规律将所述乐谱信号中的各所述发声事件和与其对应的所述生成音色链合成,得到输出音频;若否,则将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频;
输出单元,与各所述合成单元连接,用于将当前时刻的各发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音。
优选地,还包括:
第一输入模块,与所述声源获取模块连接;
输出模块,与所述合成模块连接,用于输出所述合成声音。
优选地,还包括:
第二输入模块,与所述合成模块连接,所述合成模块通过所述第二输入模块获取所述乐谱信息。
优选地,还包括:
控制模块,与所述第一输入模块、所述输出模块、所述音色库模块和所述合成模块均连接,用于检测所述第一输入模块是否打开,且当所述第一输入模块打开时控制所述音色库模块工作;并检测所述输出模块是否打开,且当所述输出模块打开时控制所述合成模块工作。
本发明的第三方面提供了一种音频处理芯片,集成有上述所述的声音合成***。
本发明的第四方面提供了一种电子设备,包括如上所述的音频处理芯片、第一输入模块和输出模块,所述音频处理芯片具有第一输入接口和输出接口,所述第一输入模块和所述第一输入接口连接,用于获取所述声源信息;所述输出模块与所述输出接口连接,用于输出所述合成声音。
优选地,所述音频处理芯片还具有第二输入接口;所述电子设备还包括第二输入模块,与所述第二输入接口连接,所述第二输入接口通过所述第二输入模块获取乐谱信息。
优选地,所述第一输入模块包括麦克;所述第二输入模块包括midi文件和/或具有键盘的器件;所述输出模块包括喇叭或者耳机。
优选地,所述电子设备包括音箱、K歌宝、语音玩具、具有主播声卡的设备。
本发明的第五方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程被执行时实现如上任一项所述的声音合成方法。
本发明的声音合成方法,对声源信号进行滤基频和幅度归一化处理,把声源信号中的基频信息滤除掉,提取声源信息中的共振峰信息形成频谱包络线,并根据频谱包络线的相关度进行分组,形成音色库;当需要声音合成时,直接将发声事件与音色库中的生成音色链或者默认音色链合成,从而大大简化生成音色库的算法,提高音色库的生成效率,且能够节省音色库的占用空间。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
以下将参照附图对本发明的优选实施方式进行描述。图中:
图1为本发明提供的声音合成方法的一种优选实施方式的流程图;
图2为本发明提供的声音合成方法中,生成音色库步骤的一种优选实施方式的流程图;
图3为本发明提供的声音合成方法中,声音合成步骤的一种优选实施方式的流程图;
图4为本发明提供的声音合成***的一种优选实施方式的***图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要说明的是,本发明的附图中虽然示出了一些实施例的逻辑顺序,但是本发明并不限于附图所给的逻辑顺序,在某些情况下,可以以不同于附图的逻辑顺序执行本发明对声音合成的方法步骤。
本申请提供了一种声音合成方法,其可以应用于声音的实时合成,也可以应用于其他情况的声音合成中,如先生成音色库,再进行声音合成。参考图1,声音合成方法包括步骤:
A:设置默认音色链,如默认音色链可以设置成正弦波;
B:生成音色库,音色库包括至少一条生成音色链,各生成音色链包括至少一条频谱包络线,每条频谱包络线含有声源信号的共振峰信息;
C:声音合成,
其中,步骤B生成音色库具体包括步骤:
S1:获取声源信号,具体可以通过麦克或者声源文件等获取声源信号,声源信号包括至少一个信号帧;
S2:将各信号帧转换为声源频域信号,即转换到频域后再对信号进行后续处理,然后对声源频域信号进行滤基频和幅度归一化处理,得到各信号帧对应的频谱包络线;
S3:根据频谱包络线之间的相关度对频谱包络线进行分组,每组形成一条生成音色链,生成音色链组成音色库。
步骤B声音合成具体包括步骤:
S4:获取乐谱信号;
S5:提取乐谱信号中当前时刻的各发声事件,然后对各发声事件执行步骤S6;
S6:判断是否生成音色库,即判断是否有生成音色链生成,若是,则执行S7;若否,则执行S8;
S7:按照音色链选取规律将各发声事件和与其对应的生成音色链合成,得到输出音频,之后再执行S9;
S8:将乐谱信号中的各发声事件与默认音色链合成,得到输出音频,之后再执行S9;
S9:将各发声事件对应的输出音频进行叠加得到合成声音,并输出合成声音;然后返回S5。
也就是说,声音合成步骤中,每次会对一个时刻的各发声事件进行声音合成,当将当前时刻的各发声事件进行合成后,才返回S5重新获取下一时刻的各发声事件进行合成。
上述方法中,步骤A只要在步骤C之前执行即可,步骤B和步骤C可以分别进行,没有先后顺序,实际中,只要有声源信号就执行步骤B,即生成音色库;只要有合成需求就执行步骤C,在执行步骤C时,若音色库中有已经生成的生成音色链,则优先将乐谱信号与音色库中的生成音色链合成,若此时音色库中还没有生成音色链则将乐谱信号与者默认音色合成。
上述方法可以通过声音合成***进行执行,如图4所示,声音合成***包括:音色库模块1和合成模块2,二者相互连接,以用于传递信号,音色库模块1用于执行步骤S1~S3,即获取声源信号,将声源信号的各信号帧转换为声源频域信号,然后对声源频域信号进行滤基频和幅度归一化处理,得到各信号帧对应的频谱包络线;并根据频谱包络线之间的相关度对频谱包络线进行分组,每组形成一条生成音色链,生成音色链组成音色库。合成模块2与音色库模块1连接,用于执行步骤S4~S9,即获取乐谱信号,提取乐谱信号中当前时刻的各发声事件,然后判断音色库是否包括生成音色链,若是,则按照音色链选取规律将乐谱信号中的各发声事件和与其对应的生成音色链合成,得到输出音频;若否,则将乐谱信号中的各发声事件与默认音色链合成,得到输出音频;最后将各输出音频进行叠加得到合成声音。
上述步骤C声音合成中的音色链选取规律在触发声音合成时即可获取。
本发明的声音合成方法和声音合成***,对声源信号进行滤基频和幅度归一化处理,把声源信号中的基频信息滤除掉,提取声源信息中的共振峰信息形成频谱包络线,并根据频谱包络线的相关度进行分组,形成音色库;当需要声音合成时,直接将发声事件与音色库中的音色链或者默认音色链合成,由于这种方法仅提取声源信号的共振峰信息,因此大大简化了生成音色库的算法,提高了音色库的生成效率;且由于这种方法得到的音色库仅包括共振峰信息,因此能够节省音色库的占用空间;同时这种声音合成方法,尤其在实时声音合成时,能够降低整个设备的功耗。
上述实施例中,各处的傅里叶变换可以为基二傅里叶变换,本发明的一种优选实施例中,采用***基快速傅里叶变换,以提高时频域转换速率。上述步骤S2具体包括:
S21:对信号帧加汉明窗后再通过***基快速傅里叶变换转换为声源频域信号;
S22:对声源频域信号的各频段的值求能量绝对值,再求对数,得到对数幅度谱;
S23:对对数幅度谱进行离散余弦变换,调整直流分量幅度,滤除高频分量,即去除直流信号和高频信号,得到滤波信号,具体地,对数幅度谱经余弦变换得到一个数组,数组中的第一个值代表的是直流分量,其包含的是幅度信息,将其设定为一个固定值,该值具体参考采样率以及信号帧的长度确定;数组中最后的值是代表高频分量,将其置零;
S24:对滤波信号进行离散余弦变换的反变换后,再求对数的反变换,得到该信号帧对应的频谱包络线。
采用这种方法,通过***基快速傅里叶变换,能够进一步提高时频域转换的速度;且通过去直流信号能够抹去信号中的幅度信息,实现幅度的归一化;通过去除高频信号,能够去除信号中包含的原激励信息,从而在声音合成时使用发声事件的激励信息,从而进一步提高音色库生成的效率,使生成的音色库占用更小的空间,提高***利用率。
具体地,上述音色库模块1包括:包络生成单元11和音色库单元12,如图4所示,包络生成单元11用于执行上述步骤S2,即获取声源信号,将各信号帧转换为声源频域信号,然后对声源频域信号进行滤基频和幅度归一化处理,得到各信号帧对应的频谱包络线;音色库单元12与包络生成单元11连接,用于执行步骤S3,即根据频谱包络线之间的相关度对频谱包络线进行分组,每组形成一条生成音色链,生成音色链组成音色库。
在步骤S21中,优选地,先判断信号帧是否为静音帧,若否,则对信号帧加汉明窗后再通过***基快速傅里叶变换转换为声源频域信号,如此,能够进一步提高整个频谱包络线的生成速度,进而提高音色库的生成效率。在实施例中,步骤S21还可以包括:若该信号帧为静音帧,则直接返回步骤S1重新获取新的信号帧,即对于非静音帧的信号帧,不执行任何步骤。当然,在获取的信号帧为静音帧时,也可以对其进行后续的处理。
关于上述步骤S3中频谱包络线的相关度,可以是时间上相邻的两个频谱包络线的相关度,一种优选的实施例中,将当前频谱包络线(即现需要分组的频谱包络线)与上一频谱包络线、预设的低通频谱包络线求相关度,具体地,步骤S3包括:若当前频谱包络线与上一个频谱包络线的相关度在第一阈值内,或者当前频谱包络线与预设的低通频谱包络线的相关度在第二阈值内,则当前频谱包络线与上一频谱包络线分为同一生成音色链,同时更新低通频谱包络线;若二者均为否,则当前频谱包络线与上一频谱包络线分为不同的生成音色链,低通频谱包络线置零。采用这种方式求取相关度,进而对频谱包络线进行分组,能够使音色库中各生成音色链包含的信息一致,即尽可能将步骤S2中得到的各音频包络线中形状一样或者相似的音频包络线分为一组,从而使合成的声音效果更平滑。其中,初始的低通频谱包络线可以置零,第一阈值和第二阈值可以根据需要进行设定,相关度的求取可以使用本领域现有的各种算法,这里就不再赘述。
进一步地,步骤S3具体包括:
S31:判断当前频谱包络线env_now与上一频谱包络线env_last的相关度是否在第一阈值内,若是,则执行S32;若否,则执行S33;
S32:将当前频谱包络线env_now分组至当前生成音色链,且当前生成音色链的长度增加1,并按照env_lowpass=env_lowpass*0.6+env_now*0.4更新低通频谱包络线,可以理解地,各生成音色链的初始长度均为1;
S33:判断当前频谱包络线env_now与低通频谱包络线env_lowpass的相关度是否在第二阈值内,若是,则执行S34;否则执行S35;
S34:将当前频谱包络线env_now分组至当前生成音色链中,且当前生成音色链的长度增加1,并按照
env_lowpass=env_lowpass*0.2+env_last*0.6+env_now*0.2更新低通频谱包络线;
S35:将低通频谱包络线设置为0,并将当前频谱包络线归为下一个音色链中,同时下一个音色链的长度加1;
其中,env_now表示当前频谱包络线,即当前需要分组的频谱包络线;env_last表示上一频谱包络线,即上一循环中进行分组的频谱包络线;env_lowpass表示低通频谱包络线,实际操作中,在S31之前设置初始的上一频谱包络线和初始的低通频谱包络线为0。
对于步骤S32和步骤S34采用不同的方式更新低通频谱包络线,能够更好地判断出形状一样或者相似的音频包络线,进而将其分为一组,从而使合成的声音效果更平滑。当然,步骤S32与步骤S34中低通频谱包络线也可以采用相同的方式进行更新,或者采用其他方式进行更新。
在具体执行时,可以为音色库开设一个存储空间,可以为先进先出的存储空间。优选地,该存储空间为可循环覆盖式的环形存储空间(即循环buffer),即音色库存储于可循环覆盖式的环形存储空间内,环形存储空间包括有多个存储单元,每个存储单元存储一条生成音色链,当各存储单元均被使用后,新的生成音色链则从起始的存储单元开始依次覆盖,可以每个存储单元存储一个生成音色链的起始地址和长度,在步骤S3中,可以依次将不同的音色链存储于各存储单元,当存储空间被存满后,可以覆盖起始的存储单元的内容,如存储空间有m个存储单元,分别记为索引0、1、2、…、m-1,则第一个生成音色链存储于索引为0的存储单元,第二个生成音色链存储于索引为1的存储单元,依次类推,到第m个生成音色链存储于索引为m-1的存储单元,第m+1个生成音色链又会存储于索引为0的存储单元,如此循环,使存储的生成音色链总是最新的,这种方式,尤其在实时声音合成的时候,能够使用最新的音色信息,从而提高合成声音的效果;且采用这种循环存储和链表管理的方式,较fifo(即先进先出)管理方式,减小了数据搬移的次数,从而进一步提高cpu的利用率。
需要说明的是,为了节省空间,步骤A中的默认音色链也可以直接存储于音色库开设的存储空间,即在执行声音合成方法步骤开始就申请一块存储空间,作为音色库的存储空间,将默认音色链首先存储于该存储空间的第一个存储单元(即上述索引为0的存储单元),当开始执行生成音色库的步骤时,第一生成音色链可以直接覆盖默认音色链。
其中,步骤S1中,当S1中获取的声源信号够一个信号帧时,具体的帧长可以根据需要确定,如帧长可以设置为10ms,则转入S2执行。可以将声源信号中的各信号帧分别通过步骤S2生成频谱包络线后,再一起对这些频谱包络线通过步骤S3进行分组,该实施例中生成音色库的步骤可以具体为:
S101:获取当前信号帧;
S102:判断当前信号帧是否为静音帧,若是,则返回S101;若否,则执行S103;
S103:将当前信号帧转换为声源频域信号后,对声源频域信号进行滤基频和幅度归一化处理,得到当前信号帧对应的当前频谱包络线;
S104:返回S101,直到当前信号帧输入为空为止,形成N个频谱包络线;然后执行S105;
S105:设置上一频谱包络线和低通频谱包络线分别为0;
S106:获取当前频谱包络线;
S107:然后按照S31~S35的方法对当前频谱包络线进行分组;
S108:判断当前频谱包络线是否为S104中的最后一个频谱包络线,若是,则结束;若否,则返回S106执行。
也就是说,包络生成单元11循环执行S101~S103,当包络生成单元11生成多个频谱包络线后才一起将这些频谱包络线发送到音色库单元12,音色库单元12循环执行步骤S105~S107,以将各频谱包络线进行分组。在这种方式中,步骤S104中,也可以不执行到当前信号帧获取为空为止,可以对n个信号帧(声源信号中的一段,该段包括n个信号帧)生成频谱包络线后就进行分组,同时再获取下一段声源信号,并生成频谱包络线。
本发明的另一种优选实施方式中,步骤A中生成音色库具体为,对于每一个信号帧执行完S2后即执行S3,然后再返回S1执行,在该实施例中,如图2所示,生成音色库的步骤具体包括:
S201:设置上一频谱包络线和低通频谱包络线分别为0;
S202:获取当前信号帧;
S203:判断当前信号帧是否为静音帧,若是,则返回S202;若否,则执行S204;
S204:将当前信号帧转换为声源频域信号后,对声源频域信号进行滤基频和幅度归一化处理,具体可以按照S21~S24的方法进行,得到当前信号帧对应的当前频谱包络线;
S205:按照S31~S35的方法对当前频谱包络线进行分组;然后返回S202,直到当前信号帧输入为空为止。
在该实施例中,当信号帧生成对应的频谱包络线后,直接对该频谱包络线进行分组,而不等待一下频谱包络线的生成,即包络生成单元11每生成一个频谱包络线就将其发送至音色库单元12进行分组,这种方式,使音色库中生成音色链的实时性更高,从而在实时合成声音时提高声音的合成效果。
更进一步地,基于该实施例,在执行S204~S205的时候,可以同时获取下一个信号帧,即在对当前频谱包络线分组的同时,不等其执行完,就同时执行S202,以获取下一信号帧,并对下一信号帧可以执行S203,即包络生成单元11与音色库单元12可以同时工作,如此,能够进一步提高音色库的实时性。
参考图4,上述合成模块2包括获取单元21、至少一个合成单元22和输出单元23,获取单元21用于执行上述步骤S4,即获取乐谱信号;各合成单元22均与获取单元21连接,分别执行步骤S5~S8,对一个发声事件进行处理,即各合成单22用于提取乐谱信号中的一个发声事件,然后判断音色库是否包括生成音色链,若是,则按照音色链选取规律将乐谱信号中的该发声事件和与其对应的生成音色链合成,得到输出音频;若否,则将乐谱信号中的该发声事件与默认音色链合成,得到输出音频;输出单元23与各合成单元22连接,用于执行上述步骤S8,即将处于同一时刻的各发声事件对应的各输出音频进行叠加得到合成声音,并输出合成声音。在同一时刻,乐谱信号中包括几个发声事件,就会有几个合成单元22,每个合成单元22分别对一个发声事件进行处理得到该发声事件对应的输出音频,输出单元23会将这些输出音频进行合成,得到合成声音,之后输出最后的合成声音。实际执行时,各合成单元22会申请一块缓存区,可以在需要合成声音的时候再申请合成单元22需要的缓存空间,当该发声事件合成结束后,则释放该缓存空间,因此,当获取到一个发声事件时,会为处理该发声事件的合成单元22申请一个缓存空间,当该合成单元22处理完该发声事件并将输出音频发送给输出单元23后,则***会释放该魂村空间。显然,采用这种方式能够很大程度上减少资源的占用,从而提高资源利用率,和节省存储空间。可以理解地,在该实施例中,合成单元22与音色模块1连接,在设有音色库单元12时,合成单元22与音色库单元12连接,以获取生成音色链。
步骤S4中,可以通过读取midi文件获取乐谱信号,或者通过识别按键操作获取乐谱信号,以便在不同的场合均能够采用本发明的声音合成方法进行声音的合成,进而提高本发明的适用性。
具体地,读取的midi文件中包括有多个发声事件,可能多个发声事件同时发生,也可能多个发声事件依次发生;在通过识别按键操作的实施例中,也可能同时识别到多个按键被按下,即同时识别到多个发声事件,也可能识别到依次按下每一个按键。上述实施例中,不论哪种情况,本发明中,只要提取到发声事件,都会对各发声事件分别根据不同情况执行步骤S6~S8,即当有多个发声事件同时发生时,同时对该时刻的每一个发声事件分别执行步骤S6~S8,然后再将各发声事件合成后得到的输出音频进行叠加;当多个发声事件依次发生时,则对每个发声事件执行完步骤S6~S8后直接输出(即在步骤S9时只有一个发声事件对应的输出音频进行叠加作为合成声音)。
上述步骤S7具体包括:根据发声事件的音高、力度和时长生成对应的激励信号,优选地生成脉冲信号,其中,脉冲信号的周期根据音高确定,幅度根据力度确定,并通过加窗傅里叶变换将其转换为乐谱频域信号,即将脉冲信号也转换到频域;然后按照音色链选取规律与音色库中对应的生成音色链合成为乐谱合成音频信号,然后对乐谱合成音频信号依次进行插值处理、傅里叶反变换,得到输出音频信号,之后再执行S9。采用上述方法,由于脉冲信号为全频信号,因此,有利于后续处理;且在对脉冲信号傅里叶变换之前先进行加窗处理,能够减小傅里叶变换过程中的频谱泄漏,和提高脉冲光信号的帧与帧之间的平滑过渡;同时对合成音频信号进行插值处理,能够使得到的输出音频信号的包络过渡更平滑。
步骤S7中加窗傅里叶变换优选为:加余弦窗和进行***基快速傅里叶变换,且通过***基快速傅里叶变换能够更好地提高频域转换的效率,尤其是在下文通过帧叠信号得到第一子音频限号的实施例中,使用余弦窗能够在帧叠的时候加权的结果和为1。
考虑到脉冲信号缺乏空间特性,质量较差,因此,发明的一种优选实施例中,步骤S7中得到输出音频信号之前还包括:对合成音频信号依次进行插值处理、傅里叶反变换得到的第一音频信号分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二音频信号和第三音频信号,即第一音频信号通过第一组去相关滤波器处理后得到第二音频信号,第一音频信号通过第二组去相关滤波器处理后得到第三音频信号;然后将第二音频信号相对于第三音频信号进行延时处理得到第四音频信号;再将第三音频信号与第四音频信号进行叠加,从而得到输出音频信号。通过这种去相关滤波器的处理,对输出音频进行空间提升,能够使输出音频信号得到增强。其中,上述延时处理的延时时间可以根据需要进行设定,如延时25ms。
具体地,一种实施例中,在生成脉冲信号时一次性生成与发声事件的时长对应的全部脉冲波,即步骤S7包括:
S711:提取当前发声事件的音高、力度和时长;
S712:根据音高、力度和时长生成当前发声事件对应的脉冲信号,即包括与该发声事件的时长对应的全部脉冲波;
S713:通过加窗傅里叶变换将脉冲信号转换为乐谱频域信号;
S714:按照音色链选取规律从音色库中选取与发声事件对应的生成音色链,并与乐谱频域信号进行合成,得到乐谱合成音频信号;
S715:对乐谱合成音频信号依次进行插值处理、傅里叶反变换,得到第一音频信号;
S716:对第一音频信号分别通过第一组去相关滤波器和第二组去相关滤波器处理,分别得到第二音频信号和第三音频信号;
S717:将第二音频信号相对于第三音频信号进行延时处理得到第四音频信号;
S718:将第三音频信号与所述第四音频信号进行叠加,从而得到输出音频信号,之后再执行S9。
本发明的另一种实施例中,在生成脉冲信号时分多次生成,即每次只生成部分脉冲波,然后对该部分脉冲波进行后续处理,也就是说,整个输出音频是通过多次处理后得到的,具体地,参考图3,步骤S7包括:
S721:提取发声事件的音高、力度和时长,并根据时长确定脉冲信号的脉冲波总个数N,设置已执行个数为0,以及确定每次生成的脉冲波的个数n;
S722:根据音高和力度生成该发生事件对应的n个脉冲波,记为当前子信号;
S723:通过加窗傅里叶变换将当前子信号转换为脉冲波频域信号;
S724:按照音色链选取规律从音色库中选取与发声事件对应的生成音色链,然后选择生成音色链中与脉冲波频域信号对应的频谱包络线,并和该脉冲波频域信号进行合成,得到脉冲波合成音频信号;
S725:对脉冲波合成音频信号依次进行插值处理、傅里叶反变换,得到第一子音频信号;
S726:将第一子音频信号作为输出子音频信号,并存储;
S727:设置已执行个数=已执行个数+n,然后判断计算后的已执行个数是否小于总个数N,即判断是否已经输出满足时长的脉冲波个数,若是,则返回S722;否则,各输出子音频信号形成输出音频信号,具体地,按生成的先后顺序将各输出子音频合并为输出音频信号,之后再执行S9。
也就是说,在该实施例中,将整个脉冲信号分成了多个子信号,然后对各子信号分别进行合成,这样在执行时,用于存放脉冲信号的存储空间只需要较小的空间即可,从而提高***的资源利用率。
可以理解地,对于同一发声事件来说,多个脉冲波频域信号形成乐谱频域信号,多个脉冲波合成音频信号形成乐谱合成音频信号,多个第一子音频信号形成第一音频信号,多个输出子音频信号形成输出音频信号。
在对脉冲信号分多个子信号进行处理的实施例中,为了提高输出音频信号的连续性,在每次生成的子信号中有一半的信号是由上次的子信号形成的,具体地,上述步骤S721还包括:根据单次个数n设置默认信号,如可以直接设置为0,作为上一子信号;
此实施例中,步骤S722具体包括:
根据音高和力度合成发声事件对应的n/2个脉冲波信号,作为当前子信号的后半部分;然后将上一子信号的后半部分作为当前子信号的前半部分,并与当前子信号的后半部分一起作为当前子信号;
相应地,步骤S727中,若是,则返回S722,具体为:
若是,则将当前子信号作为上一子信号,然后返回S722。
实际执行时,首先会为当前子信号申请一块缓存区域,该缓存区域为先进先出式,并对其初始化,如置0;在步骤S722中,会先将该缓存区域内的后半段(即上一子信号的后半段)移到该缓存区域的前半段;然后再将n/2个脉冲波信号存放于该缓存区域的后半段,此时,该缓存区域内存储的全部信号作为当前子信号。
进一步地,为了更好地提高输出音频信号的连续性,在得到第一子音频信号之前还进行了帧叠处理,具体地,
上述步骤S721还包括:设置帧叠信号的初始值为0;
相应地,步骤S725具体包括:
对脉冲波合成音频信号依次进行插值处理、傅里叶反变换之后,将得到的中间子信号与帧叠信号进行加权相加,得到第一子音频信号;然后将第一子音频信号作为帧叠信号,即每次对帧叠信号进行更新,以作为下一次处理中的帧叠信号。
对应于对输出音频信号之前的去相关滤波器处理,在该实施例中,为了提升每一个输出子音频信号的空间效果,步骤S726具体包括:
S7261:对第一子音频信号分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二子音频信号和第三子音频信号;
S7262:将第二子音频信号相对于第三子音频信号进行延时处理得到第四音子频信号;
S7263:将第子三音频信号与第四子音频信号进行叠加,从而得到输出子音频信号,并存储输出子音频信号。
不论采用上述哪种方式对发声事件进行处理,在增加有去相关滤波器处理的步骤中个,第一组去相关滤波器和第二组去相关滤波器的滤波器表达式可以均为:1/(1+a0*z.^(-n1))(1+a1*z^(-n2))(1+a2*z^(-n3);其中,两组滤波器中,n1、n2、n3均为质数,且不相等,即第一组去相关滤波器中的n1与第二组去相关滤波器中的n1不相等,第一组去相关滤波器中的n2与第二组去相关滤波器中的n2不相等,第一组去相关滤波器中的n3与第二组去相关滤波器中的n3不相等;a0、a1、a2为预设系数,且在两组滤波器中的值也不相等,可以根据需要进行调整。在进行去相关滤波器处理时,把第一子音频信号(或者第一音频信号)带入表达式中的z得到第二子音频信号(第二音频信号)和第三子音频信号(或者第三音频信号)。
在步骤C声音合成步骤的步骤S7中,在从音色库中选取到发声事件对应的生成音色链后,如上述实施例中的步骤S714和步骤724中,发声事件合成时需要的频谱包络线的个数可能小于或者等于该对应生成音色链中包括的频谱包络线的个数,此时,直接选取需要个数的频谱包络线即可;但是当发声事件合成时需要的频谱包络线的个数大于该对应生成音色链中包括的频谱包络线的个数时,可以将其中的几个频谱包络线使用多次。本发明的一种优选实施例中,步骤S7中,按照音色链选取规律与音色库中对应的生成音色链合成为合成音频信号,具体包括:
S71:按照音色链选取规律从音色库中选取与发声事件对应的生成音色链;
S72:判断该生成音色链的实际长度(即生成音色链中包括的频谱包络线的实际个数)是否大于或者等于脉冲信号所需的音色链的预期长度(即与脉冲信号合成时所需要的频谱包络线的预期个数,具体可以根据发声事件的时长确定);若是,则执行S73;否则,执行S74;
S73:从该生成音色链中,依次选取预期长度的各频谱包络线与脉冲信号合成(在分为多个子信号时,为当前子信号,即对应步骤S724);
S74:对生成音色链的频谱包络线进行插值处理,使生成音色链的长度等于预期长度;然后依次选取预期长度的各频谱包络线与脉冲信号合成(在分为多个子信号时,为当前子信号,即对应步骤S724),也就是说,先通过对已有的频谱包络线插值处理插值出(预期个数-实际个数)新的频谱包络线,然后这些新的频谱包络线和已有的频谱包络线一起形成该生成音色链,再依次选取这些频谱包络线(包括新的频谱包络线和已有的频谱包络线)。具体的插值方法不限,可以选用线性插值,如实际个数为五,预期个数为九,则需要插值出四个新的频谱包络线,为了便于表达,将原生成音色链中的五个频谱包络线分别记为第一包络线、第二包络线、第三包络线、第四包络线和第五包络线,四个新的频谱包络线分别记为第六包络线、第七包络线、第八包络线和第九包络线,一种插值方法为:第六包络线=0.5*第一包络线+0.5*第二包络线,第七包络线=0.5*第二包络线+0.5*第三包络线,第八包络线=0.5*第三包络线+0.5*第四包络线,第九包络线=0.5*第四包络线+0.5*第五包络线;然后第一包络线、第六包络线、第二包络线、第七包络线、第三包络线、第八包络线、第四包络线、第九包络线、第五包络线排布之后,再进行合成。
采用上述增加生成音色链之后再进行信号合成,能够进一步提高声音的音色效果。
其中,上述各实施例中,声音合成***还包括第一输入模块和输出模块,第一输入模块与声源获取模块连接;输出模块与合成模块连接,用于输出合成声音。
第一输入模块可以为麦克,此时,上述各实施例中步骤S1中可以通过麦克获取声源信号,这种方式能够实现实时获取实时输出。当然,步骤S1中也可以直接从存储器等器件中读取,或者通过网络等传输得到。
上述步骤S8的合成声音可以直接输出给其他处理模块,输出模块可以包括喇叭、耳机等器件,此时,可以直接通过喇叭、耳机输出。
在步骤S4通过读取midi文件获取乐谱信号的实施例中,midi文件可以直接存储于合成模块2中,在需要时直接读取即可。在通过识别按键操作获取乐谱信号的实施例中,声音合成***还包括第二输入模块,第二输入模块用于产生按键信息,其与合成模块2连接,合成模块2通过第二输入模块获取乐谱信息。其中,第二输入模块可以包括钢琴等乐器器件,也可以包括具有按键的其他器件(如有的玩具,其上具有按键,按不同的按键,会发出不同的声音;再如人造植物,植入的叶子具有按键功能,触摸不同的叶子该植物发出不同的声音),通过获取钢琴的按键信息可以得到什么时候什么键被按下。
可以理解地,声音合成***,还包括控制模块,控制模块与第一输入模块、输出模块、音色库模块1和合成模块2均连接,用于检测第一输入模块是否打开,且当第一输入模块打开时控制音色库模块工作;并检测输出模块是否打开,且当输出模块打开时控制合成模块工作。也就是说,当控制模块检测到第一输入模块打开时,即由声源信号输入时,则控制执行生成音色库的步骤;当控制模块检测到输出模块打开时,即检测到需要输出合成声音时,则控制执行声音合成的步骤。
需要说明的是,上述声音合成方法,并不限于使用上述声音合成***,也可以通过其他***或者设备执行。
在实际产品中,可以将上述声音合成***集成在一起,形成产品。也可以仅将上述声音合成***的部分集成在一起,本发明还提供了一种音频处理芯片,存储有上述各实施例所述的声音合成方法,即集成有上述音色库模块1和合成模块2。该集成芯片可以设置有输入接口和输出接口。
本发明还提供了一种电子设备,包括上述音频处理芯片。该电子设备还包括第一输入模块和输出模块,音频处理芯片具有第一输入接口和输出接口,第一输入模块和第一输入接口连接,用于获取声源信息;输出模块与输出接口连接,用于输出合成声音。进一步地,音频处理芯片还具有第二输入接口;电子设备还可以包括第二输入模块,与第二输入接口连接,第二输入接口通过第二输入模块获取乐谱信息。
其中,第一输入模块、第二输入模块和输出模块可以为上述任一实施例中所限定的器件,这里就不在赘述了。
在本发明提供的另一种电子设备中,其包括上述任一实施例所述的声音合成***。
上述各实施例中的电子设备具体可以包括:音箱、K歌宝、语音玩具、具有主播声卡的设备。
此外,本发明还提供了一种计算机可读存储介质,如光盘、U盘、硬盘等,其上存储有计算机程序,该计算机程被执行时实现如上述任一实施例所述的声音合成方法。其中,该计算机程序被执行时可以以demo可视对话框呈现,也可以直接为可执行的exe文件。
需要说明的是,上述各实施例中提及的按键,并不限定为通过敲击方式按压,也包括通过触摸等方式实现的按键操作。
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。

Claims (30)

1.一种声音合成方法,其特征在于,包括步骤:
设置默认音色链;
生成音色库;和
声音合成;
其中,所述生成音色库的步骤包括:
S1:获取声源信号,所述声源信号包括至少一个信号帧;
S2:将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;
S3:根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库;
所述声音合成的步骤包括:
S4:获取乐谱信号;
S5:提取所述乐谱信号中当前时刻的各发声事件,然后对各所述发声事件执行S6;
S6:判断是否生成所述音色库,若是,则执行S7;若否,则执行S8;
S7:按照音色链选取规律将各所述发声事件和与其对应的所述生成音色链合成,得到输出音频,之后再执行S9;
S8:将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频,之后再执行S9;
S9:将各所述发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音;然后返回S5。
2.根据权利要求1所述的声音合成方法,其特征在于,所述步骤S2具体包括:
S21:对所述信号帧加汉明窗后,再通过***基快速傅里叶变换转换为所述声源频域信号;
S22:对所述声源频域信号中各频段的值求能量绝对值,再求对数,得到对数幅度谱;
S23:对所述对数幅度谱进行离散余弦变换,调整直流分量幅度,滤除高频分量,得到滤波信号;
S24:对所述滤波信号进行离散余弦变换的反变换后,再求对数的反变换,得到所述信号帧对应的所述频谱包络线。
3.根据权利要求2所述的声音合成方法,其特征在于,所述步骤S21具体包括:先判断所述信号帧是否为静音帧,若是,则返回所述步骤S1;若否,则对所述信号帧加汉明窗后再通过***基快速傅里叶变换转换为所述声源频域信号。
4.根据权利要求1所述的声音合成方法,其特征在于,所述步骤S3具体包括:若当前频谱包络线与上一个所述频谱包络线的相关度在第一阈值内,或者所述当前频谱包络线与预设的低通频谱包络线的相关度在第二阈值内,则所述当前频谱包络线与上一所述频谱包络线分为同一所述生成音色链,同时更新所述低通频谱包络线;
若当前频谱包络线与上一个所述频谱包络线的相关度不在第一阈值内,且所述当前频谱包络线与预设的低通频谱包络线的相关度不在第二阈值内,则所述当前频谱包络线与上一所述频谱包络线分为不同的生成音色链,所述低通频谱包络线置零。
5.根据权利要求4所述的声音合成方法,其特征在于,所述步骤S3具体包括:
S31:判断所述当前频谱包络线与上一所述频谱包络线的相关度是否在第一阈值内,若是,则执行S32;若否,则执行S33;
S32:将所述当前频谱包络线分组至当前生成音色链,且所述当前生成音色链的长度增加1,并按照env_lowpass=env_lowpass*0.6+env_now*0.4更新所述低通频谱包络线;
S33:判断所述当前频谱包络线与所述低通频谱包络线的相关度是否在第二阈值内,若是,则执行S34;否则执行S35;
S34:将所述当前频谱包络线分组至所述当前生成音色链中,且所述当前生成音色链的长度增加1,并按照
env_lowpass=env_lowpass*0.2+env_last*0.6+env_now*0.2更新所述低通频谱包络线;
S35:将所述低通频谱包络线设置为0,并将所述当前频谱包络线分组至下一个生成音色链中,同时下一个生成音色链的长度加1;
其中,env_now表示当前频谱包络线;env_last表示上一频谱包络线;env_lowpass表示低通频谱包络线,初始的低通频谱包络线默认为0。
6.根据权利要求1所述的声音合成方法,其特征在于,所述生成音色库步骤中,对于每一个所述信号帧执行完S2后即执行S3,然后再返回S1执行。
7.根据权利要求1所述的声音合成方法,其特征在于,所述音色库存储于可循环覆盖式的环形存储空间内,所述环形存储空间包括有多个存储单元,每个所述存储单元存储一条所述生成音色链,当各所述存储单元均被使用后,新的所述生成音色链从起始的所述存储单元开始依次覆盖。
8.根据权利要求1所述的声音合成方法,其特征在于,所述步骤S4中,通过读取midi文件获取所述乐谱信号,或者通过识别按键操作获取所述乐谱信号。
9.根据权利要求1所述的声音合成方法,其特征在于,所述步骤S7具体包括:
根据所述发声事件的音高、力度和时长生成对应的脉冲信号,并通过加窗傅里叶变换将其转换为乐谱频域信号;
按照音色链选取规律与所述音色库中对应的所述生成音色链合成为乐谱合成音频信号;
然后对所述乐谱合成音频信号依次进行插值处理、傅里叶反变换,得到所述输出音频信号,之后再执行S9。
10.根据权利要求9所述的声音合成方法,其特征在于,所述步骤S7中加窗傅里叶变换具体为:加余弦窗和进行***基快速傅里叶变换。
11.根据权利要求9所述的声音合成方法,其特征在于,所述步骤S7中,得到所述输出音频信号之前还包括:
对所述合成音频信号依次进行插值处理、傅里叶反变换得到的第一音频信号,分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二音频信号和第三音频信号;
然后将所述第二音频信号相对于所述第三音频信号进行延时处理得到第四音频信号;
再将所述第三音频信号与所述第四音频信号进行叠加,从而得到所述输出音频信号。
12.根据权利要求9所述的声音合成方法,其特征在于,所述步骤S7具体包括:
S721:提取所述发声事件的音高、力度和时长,并根据所述时长确定所述脉冲信号的脉冲波总个数N,设置已执行个数为0,以及确定每次生成的脉冲波的单次个数n;
S722:根据所述音高和所述力度生成所述发生事件对应的n个脉冲波,记为当前子信号;
S723:通过加窗傅里叶变换将所述当前子信号转换为脉冲波频域信号;
S724:按照音色链选取规律从所述音色库中选取与所述发声事件对应的所述生成音色链,然后选择所述生成音色链中与所述脉冲波频域信号对应的所述频谱包络线,并和所述脉冲波频域信号进行合成,得到脉冲波合成音频信号;
S725:对所述脉冲波合成音频信号依次进行插值处理、傅里叶反变换,得到第一子音频信号;
S726:将所述第一子音频信号作为输出子音频信号,并存储;
S727:设置已执行个数=已执行个数+单次个数n,然后判断所述已执行个数是否小于总个数N,若是,则返回S722;否则,各所述输出子音频信号形成所述输出音频信号,之后再执行S9。
13.根据权利要求12所述的声音合成方法,其特征在于,所述步骤S721还包括:根据所述单次个数n设置对应的默认信号,作为上一子信号;
所述步骤S722具体包括:
根据所述音高和所述力度合成所述发声事件对应的n/2个脉冲波信号,作为所述当前子信号的后半部分;
然后将所述上一子信号的后半部分作为所述当前子信号的前半部分,与所述当前子信号的后半部分一起形成所述当前子信号;
所述S727中,若是,则返回S722,具体为:若是,则将所述当前子信号作为上一子信号,然后返回S722。
14.根据权利要求12所述的声音合成方法,其特征在于,所述步骤S721还包括:设置帧叠信号的初始值为0;
所述步骤S725具体包括:
对所述脉冲波合成音频信号依次进行插值处理、傅里叶反变换之后,将得到的中间子信号与所述帧叠信号进行加权相加,得到所述第一子音频信号;然后将所述第一子音频信号作为帧叠信号。
15.根据权利要求12所述的声音合成方法,其特征在于,所述步骤S726具体包括:
S7261:对所述第一子音频信号分别通过第一组去相关滤波器和第二组去相关滤波器处理,得到第二子音频信号和第三子音频信号;
S7262:将所述第二子音频信号相对于所述第三子音频信号进行延时处理得到第四音子频信号;
S7263:将所述第子三音频信号与所述第四子音频信号进行叠加,从而得到所述输出子音频信号,并存储所述输出子音频信号。
16.根据权利要求11或者15所述的声音合成方法,其特征在于,所述第一组去相关滤波器和所述第二组去相关滤波器的滤波器表达式为:1/(1+a0*z.^(-n1))(1+a1*z^(-n2))(1+a2*z^(-n3);其中,两组滤波器中,n1、n2、n3均为质数,且不相等;a0、a1、a2为预设系数,且也不相等。
17.根据权利要求9所述的声音合成方法,其特征在于,所述步骤S7中,按照音色链选取规律与所述音色库中对应的所述生成音色链合成为合成音频信号,具体包括:
S71:按照音色链选取规律从所述音色库中选取与所述发声事件对应的所述生成音色链;
S72:判断所述生成音色链的实际长度是否大于或者等于所述脉冲信号所需的音色链的预期长度;若是,则执行S73;否则,执行S74;
S73:从所述生成音色链中,依次选取所述预期长度的各所述频谱包络线与所述脉冲信号合成;
S74:对所述生成音色链的所述频谱包络线进行插值处理,使所述生成音色链的长度等于所述预期长度;然后依次选取所述预期长度的各所述频谱包络线与所述脉冲信号合成。
18.根据权利要求1所述的声音合成方法,其特征在于,所述步骤S1中,通过麦克获取所述声源信号。
19.一种声音合成***,其特征在于,包括:
音色库模块,获取声源信号,所述声源信号包括至少一个信号帧;将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;并根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库;
合成模块,与所述音色库模块连接,用于获取乐谱信号,提取所述乐谱信号中当前时刻的各发声事件,然后判断所述音色库是否包括所述生成音色链,若是,则按照音色链选取规律将所述乐谱信号中的各发声事件和与其对应的所述生成音色链合成,得到输出音频;若否,则将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频;最后将各所述发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音。
20.根据权利要求19所述的声音合成***,其特征在于,所述音色库模块包括:
包络生成单元:用于获取声源信号,所述声源信号包括至少一个信号帧;将各所述信号帧转换为声源频域信号,然后对所述声源频域信号进行滤基频和幅度归一化处理,得到各所述信号帧对应的频谱包络线;
音色库单元,与所述包络生成单元连接,用于根据所述频谱包络线之间的相关度对所述频谱包络线进行分组,每组形成一条生成音色链,所述生成音色链组成音色库。
21.根据权利要求19所述的声音合成***,其特征在于,所述合成模块包括:
获取单元,用于获取乐谱信号;
至少一个合成单元,各所述合成单元均与所述获取单元连接,各所述合成单元用于提取所述乐谱信号中的一个所述发声事件,然后判断所述音色库是否包括所述生成音色链,若是,则按照音色链选取规律将所述乐谱信号中的各所述发声事件和与其对应的所述生成音色链合成,得到输出音频;若否,则将所述乐谱信号中的各发声事件与所述默认音色链合成,得到输出音频;
输出单元,与各所述合成单元连接,用于将当前时刻的各发声事件对应的所述输出音频进行叠加得到合成声音,并输出所述合成声音。
22.根据权利要求19-21任一项所述的声音合成***,其特征在于,还包括:
第一输入模块,与所述声源获取模块连接;
输出模块,与所述合成模块连接,用于输出所述合成声音。
23.根据权利要求22所述的声音合成***,其特征在于,还包括:
第二输入模块,与所述合成模块连接,所述合成模块通过所述第二输入模块获取所述乐谱信息。
24.根据权利要求23所述的声音合成***,其特征在于,还包括:
控制模块,与所述第一输入模块、所述输出模块、所述音色库模块和所述合成模块均连接,用于检测所述第一输入模块是否打开,且当所述第一输入模块打开时控制所述音色库模块工作;并检测所述输出模块是否打开,且当所述输出模块打开时控制所述合成模块工作。
25.一种音频处理芯片,其特征在于,集成有权利要求19-21任一项所述的声音合成***。
26.一种电子设备,其特征在于,包括如权利要求25所述的音频处理芯片、第一输入模块和输出模块,所述音频处理芯片具有第一输入接口和输出接口,所述第一输入模块和所述第一输入接口连接,用于获取所述声源信息;所述输出模块与所述输出接口连接,用于输出所述合成声音。
27.根据权利要求26所述的电子设备,其特征在于,所述音频处理芯片还具有第二输入接口;所述电子设备还包括第二输入模块,与所述第二输入接口连接,所述第二输入接口通过所述第二输入模块获取乐谱信息。
28.根据权利要求27所述的电子设备,其特征在于,所述第一输入模块包括麦克;所述第二输入模块包括midi文件和/或具有键盘的器件;所述输出模块包括喇叭或者耳机。
29.根据权利要求26-29任一项所述的电子设备,其特征在于,所述电子设备包括音箱、K歌宝、语音玩具、具有主播声卡的设备。
30.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程被执行时实现如权利要求1-18任一项所述的声音合成方法。
CN202010052787.1A 2020-01-17 2020-01-17 声音合成方法及***、音频处理芯片、电子设备 Active CN111435591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010052787.1A CN111435591B (zh) 2020-01-17 2020-01-17 声音合成方法及***、音频处理芯片、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010052787.1A CN111435591B (zh) 2020-01-17 2020-01-17 声音合成方法及***、音频处理芯片、电子设备

Publications (2)

Publication Number Publication Date
CN111435591A true CN111435591A (zh) 2020-07-21
CN111435591B CN111435591B (zh) 2023-06-20

Family

ID=71580208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010052787.1A Active CN111435591B (zh) 2020-01-17 2020-01-17 声音合成方法及***、音频处理芯片、电子设备

Country Status (1)

Country Link
CN (1) CN111435591B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112614481A (zh) * 2020-12-08 2021-04-06 浙江合众新能源汽车有限公司 一种汽车提示音的语音音色定制方法及***

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222167A (ja) * 1997-02-06 1998-08-21 Kawai Musical Instr Mfg Co Ltd 電子楽器のピッチ制御装置
JP2003280654A (ja) * 2002-03-22 2003-10-02 Casio Comput Co Ltd エンベロープ制御装置およびエンベロープ制御方法
US20050065784A1 (en) * 2003-07-31 2005-03-24 Mcaulay Robert J. Modification of acoustic signals using sinusoidal analysis and synthesis
CN1790478A (zh) * 2005-11-30 2006-06-21 北京中星微电子有限公司 一种音效文件播放方法及其装置
US20140088958A1 (en) * 2012-09-24 2014-03-27 Chengjun Julian Chen System and method for speech synthesis
CN106228973A (zh) * 2016-07-21 2016-12-14 福州大学 稳定音色的音乐语音变调方法
CN107863095A (zh) * 2017-11-21 2018-03-30 广州酷狗计算机科技有限公司 音频信号处理方法、装置和存储介质
US10008193B1 (en) * 2016-08-19 2018-06-26 Oben, Inc. Method and system for speech-to-singing voice conversion
CN109192218A (zh) * 2018-09-13 2019-01-11 广州酷狗计算机科技有限公司 音频处理的方法和装置
CN109936766A (zh) * 2019-01-30 2019-06-25 天津大学 一种基于端到端的水场景音频的生成方法
CN110459201A (zh) * 2019-08-22 2019-11-15 云知声智能科技股份有限公司 一种产生新音色的语音合成方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222167A (ja) * 1997-02-06 1998-08-21 Kawai Musical Instr Mfg Co Ltd 電子楽器のピッチ制御装置
JP2003280654A (ja) * 2002-03-22 2003-10-02 Casio Comput Co Ltd エンベロープ制御装置およびエンベロープ制御方法
US20050065784A1 (en) * 2003-07-31 2005-03-24 Mcaulay Robert J. Modification of acoustic signals using sinusoidal analysis and synthesis
CN1790478A (zh) * 2005-11-30 2006-06-21 北京中星微电子有限公司 一种音效文件播放方法及其装置
US20140088958A1 (en) * 2012-09-24 2014-03-27 Chengjun Julian Chen System and method for speech synthesis
CN106228973A (zh) * 2016-07-21 2016-12-14 福州大学 稳定音色的音乐语音变调方法
US10008193B1 (en) * 2016-08-19 2018-06-26 Oben, Inc. Method and system for speech-to-singing voice conversion
CN107863095A (zh) * 2017-11-21 2018-03-30 广州酷狗计算机科技有限公司 音频信号处理方法、装置和存储介质
CN109192218A (zh) * 2018-09-13 2019-01-11 广州酷狗计算机科技有限公司 音频处理的方法和装置
CN109936766A (zh) * 2019-01-30 2019-06-25 天津大学 一种基于端到端的水场景音频的生成方法
CN110459201A (zh) * 2019-08-22 2019-11-15 云知声智能科技股份有限公司 一种产生新音色的语音合成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112614481A (zh) * 2020-12-08 2021-04-06 浙江合众新能源汽车有限公司 一种汽车提示音的语音音色定制方法及***

Also Published As

Publication number Publication date
CN111435591B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
EP1701336A2 (en) Sound processing apparatus and method, and program therefor
CN103109317A (zh) 掩蔽声音输出装置和掩蔽声音输出方法
CN110459196A (zh) 一种调整歌曲演唱难度的方法、装置及***
CN101740034A (zh) 一种实现声音变速不变调方法及变速变调***
CN109416911B (zh) 声音合成装置及声音合成方法
WO2020095950A1 (ja) 情報処理方法および情報処理システム
US11875777B2 (en) Information processing method, estimation model construction method, information processing device, and estimation model constructing device
WO2020095951A1 (ja) 音響処理方法および音響処理システム
CN111435591B (zh) 声音合成方法及***、音频处理芯片、电子设备
JP2018077283A (ja) 音声合成方法
WO2004072951A1 (en) Multiple speech synthesizer using pitch alteration method
JP2012208177A (ja) 帯域拡張装置及び音声補正装置
CN112309425A (zh) 一种声音变调方法、电子设备及计算机可读存储介质
US12039994B2 (en) Audio processing method, method for training estimation model, and audio processing system
JP3841596B2 (ja) 音素データの生成方法及び音声合成装置
JP4349316B2 (ja) 音声分析及び合成装置、方法、プログラム
CN113539215A (zh) 音乐风格转换方法、装置、设备及存储介质
CN112908351A (zh) 一种音频变调方法、装置、设备及存储介质
EP2634769B1 (en) Sound synthesizing apparatus and sound synthesizing method
CN112164387A (zh) 音频合成方法、装置及电子设备和计算机可读存储介质
JP6834370B2 (ja) 音声合成方法
CN113421544B (zh) 歌声合成方法、装置、计算机设备及存储介质
JP7088403B2 (ja) 音信号生成方法、生成モデルの訓練方法、音信号生成システムおよびプログラム
Saranya et al. Orchestrate-A GAN Architectural-Based Pipeline for Musical Instrument Chord Conversion
JP6587308B1 (ja) 音声処理装置、および音声処理方法

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
CB02 Change of applicant information

Address after: 519075 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province

Applicant after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.

Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province

Applicant before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant