一种基于生成对抗网络的海豚叫声生成方法转让专利

申请号 : CN202311126983.9

文献号 : CN116863959B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 娄毅毕守华周志权

申请人 : 哈尔滨工业大学(威海)

摘要 :

本申请提供了一种基于生成对抗网络的海豚叫声生成方法,其解决了现有海豚叫声数据获取困难的技术问题;包括以下步骤:海豚叫声预处理;构建生成对抗网络,定义损失函数;训练判别器模型、生成器模型;生成海豚叫声;其中,生成对抗网络包括生成器模型、判别器模型;其中,生成对抗网络包括生成器模型、判别器模型。生成器模型损失函数、判别器模型损失函数为本申请设计的。该方法可以有效的生成大量海豚叫声,为海豚声音采集与分析提供了大量数据资源。本申请应用于海豚声音采集与分析的技术领域。

权利要求 :

1.一种基于生成对抗网络的海豚叫声生成方法,其特征在于:包括以下步骤:海豚叫声预处理;

构建生成对抗网络,定义损失函数;

训练判别器模型、生成器模型;

生成海豚叫声;

其中,所述生成对抗网络包括生成器模型、判别器模型;

判别器模型损失函数表示如下:

生成器模型损失函数表示如下:

其中, D(x)表示判别器模型对真实海豚叫声的判别结果,z表示随机噪声向量,G(z)表示生成器模型生成海豚叫声,Pr(x)表示真实海豚叫声x数据集, 表示在真实海豚叫声分布中的海豚叫声期望,Pn(z)表示随机噪声向量z数据集, 表示在随机噪声向量分布中的随机噪声向量,D(G(z))表示判别器模型对生成器模型生成海豚叫声的判别结果;

所述海豚叫声预处理,具体通过以下方式实现:

获取海豚叫声,先标准化处理后短时傅里叶变换,生成频域海豚叫声样本。

2.如权利要求1所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述生成器模型依次设置有全连接层、重构层、激活层和四个卷积单元。

3.如权利要求2所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述判别器模型依次设置有三个卷积单元和重构层、全连接层、激活层。

4.如权利要求3所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述卷积单元依次由卷积层和激活层连接组成。

5.如权利要求4所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述生成器模型中,前四层所述激活层的激活函数为ReLU函数,最后一层所述激活层的激活函数为Tanh函数。

6.如权利要求4所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述判别器模型中,前三层所述激活层的激活函数为LeakyReLU函数,最后一层所述激活层的激活函数为sigmoid函数。

7.如权利要求1‑6任一项所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述训练判别器模型、生成器模型,具体通过以下方式实现:将所述海豚叫声样本和随机噪声向量分别送入判别器模型和生成器模型进行对抗学习,采用梯度下降算法来优化所述生成器模型损失函数和判别器模型损失函数,更新所述生成器模型和判别器模型的参数,多次迭代完成训练。

8.如权利要求1所述的基于生成对抗网络的海豚叫声生成方法,其特征在于:所述生成海豚叫声,具体通过以下方式实现:随机生成N个的噪声向量,输入到训练好的生成器模型,输出N个生成海豚叫声的频域数据,再进行短时傅里叶逆变换生成海豚叫声。

说明书 :

一种基于生成对抗网络的海豚叫声生成方法

技术领域

[0001] 本申请涉及一种海豚叫声生成方法,更具体地说,是涉及一种基于生成对抗网络的海豚叫声生成方法。

背景技术

[0002] 目前,数据缺乏仍然是阻碍深度学习技术发展的重要原因之一,且完备的数据集应具有大规模性、多样性,多样性不仅仅指从不同角度分类的实测数据,还应包含有以现有的技术手段获得的高质量的仿真数据(梁俊杰,韦舰晶,蒋正锋.生成对抗网络GAN综述[J].计算机科学与探索,2020,14(01):1‑17)。近年来利用深度生成模型生成虚假数据成为研究的热点,尤其是生成对抗网络(generative adversarial networks,GAN)(Goodfellow I,Pouget‑Abadie J,Mirza M,et al. Generative Adversarial Nets[C]Neural Information Processing Systems.MIT Press,2014)提出以来,AI一键换脸、AI图像修复等各种应用层出不穷,随后发展的GAN衍生模型也被应用于各个领域。GAN能够从大量无标签数据中无监督地学习到各种数据特征,在数据扩充领域有较强的通用性(黄琼男,朱卫纲,李永刚.基于GAN的SAR数据扩充研究综述[J].兵器装备工程学报,2021,42(11):31‑38)。
[0003] 由于海豚叫声的采集非常困难,能采集到的数据有限,且会消耗大量人力、物力。因此,需要能根据少数海豚叫声数据生成大量海豚叫声数据的方法。

发明内容

[0004] 为解决现有海豚叫声数据获取困难的问题,本申请采用的技术方案是:提供一种基于生成对抗网络的海豚叫声生成方法,包括以下步骤:
[0005] 海豚叫声预处理;
[0006] 构建生成对抗网络,定义损失函数;
[0007] 训练判别器模型、生成器模型;
[0008] 生成海豚叫声;
[0009] 其中,生成对抗网络包括生成器模型、判别器模型;
[0010] 判别器模型损失函数表示如下:
[0011]
[0012] 生成器模型损失函数表示如下:
[0013]
[0014] 其中, D(x)表示判别器模型对真实海豚叫声的判别结果,z表示随机噪声向量,G(z)表示生成器模型生成海豚叫声,Pr(x)表示真实海豚叫声x数据集, 表示在真实海豚叫声分布中的海豚叫声期望,Pn(z)表示随机噪声向量z数据集, 表示在随机噪声向量分布中的随机噪声向量,D(G(z))表示判别器模型对生成器模型生成海豚叫声的判别结果,表示判别器模型的输出结果。
[0015] 优选地,海豚叫声预处理,具体通过以下方式实现:
[0016] 获取海豚叫声,先标准化处理后短时傅里叶变换,生成频域海豚叫声样本。
[0017] 优选地,生成器模型依次设置有全连接层、重构层、激活层和四个卷积单元。
[0018] 优选地,判别器模型依次设置有三个卷积单元和重构层、全连接层、激活层。
[0019] 优选地,卷积单元依次由卷积层和激活层连接组成。
[0020] 优选地,生成器模型中,前四层激活层的激活函数为ReLU函数,最后一层激活层的激活函数为Tanh函数。
[0021] 优选地,判别器模型中,前三层激活层的激活函数为LeakyReLU函数,最后一层激活层的激活函数为sigmoid函数。
[0022] 优选地,训练判别器模型、生成器模型,具体通过以下方式实现:
[0023] 将海豚叫声样本和随机噪声向量分别送入判别器模型和生成器模型进行对抗学习,采用梯度下降算法来优化生成器模型损失函数和判别器模型损失函数,更新生成器模型和判别器模型的参数,多次迭代完成训练。
[0024] 优选地,生成海豚叫声,具体通过以下方式实现:
[0025] 随机生成N个的噪声向量,输入到训练好的生成器模型,输出N个生成海豚叫声的频域数据,再进行短时傅里叶逆变换生成海豚叫声。
[0026] 本发明的有益效果,首先对海豚叫声进行预处理,后将海豚叫声样本和随机噪声向量分别送入判别器模型和生成器模型,对判别器模型和生成器模型进行对抗学习,采用梯度下降算法来优化本申请设计的生成器模型损失函数和判别器模型损失函数,更新生成器模型和判别器模型参数,在多次迭代之后,生成器模型和判别器模型完成训练。利用训练好的海豚叫声生成器模型,生成海豚叫声。该方法可以有效的生成大量海豚叫声,为海豚声音采集与分析提供了大量数据资源。

附图说明

[0027] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1为本申请一实施例提供的一种基于生成对抗网络的海豚叫声生成方法的流程示意图;
[0029] 图2为本申请一实施例提供的海豚叫声预处理流程图;
[0030] 图3为本申请一实施例提供的生成器模型结构示意图;
[0031] 图4为本申请一实施例提供的判别器模型结构示意图。

具体实施方式

[0032] 为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0033] 由于声音的采集非常困难,能采集到的数据有限,且会消耗大量人力、物力,因此发明了一种生成对抗模型根据已有的少数海豚叫声数据生成大量海豚叫声数据。
[0034] 请参阅图1,为本申请一实施例提供的一种基于生成对抗网络的海豚叫声生成方法的流程示意图,为了便于说明,仅示出了与本实施例相关的部分,详述如下:
[0035] 在其中一实施例中,一种基于生成对抗网络的海豚叫声生成方法,其包括:
[0036] S101、海豚叫声预处理:获取海豚叫声数据,处理生成频域海豚叫声样本;
[0037] 具体地,如图2所示,海豚叫声预处理采用以下步骤实现:
[0038] 采集海豚叫声15秒,等分为30份,再扩大到412个0.5s样本,后对412个样本做标准化处理,使其分布在[‑1,1]之间:
[0039]
[0040] 其中,x(m)表示海豚叫声数据,max|x(m)|表示海豚叫声数据的最大值。
[0041] 再做短时傅里叶变换(STFT),使其变换到频域:
[0042]
[0043] 其中,w(m)表示窗函数,w(n‑m)表示窗函数w(m)反褶后右移n个单位。其中,STFT窗函数选择海宁窗,交叠长度为128,窗长256,最终每个样本大小为128*129。
[0044] S102、构建生成对抗网络,定义损失函数;生成对抗网络包括生成器模型、判别器模型;
[0045] 具体地,生成器模型、判别器模型构建结构如下:
[0046] 请参阅图3,生成器模型依次设置有全连接层,重构层,激活层,四个卷积单元。进一步地,卷积单元依次由卷积层和激活层连接组成。
[0047] 在其中一实施例中,生成器模型具体网络结构设置:全连接层输入1*1*100,变换为输出为256*64*1;重构层输出为4*4*1024,卷积层的步长依次为2、4、2、2,所有卷积层卷积核大小为5*5,前四层激活层选取ReLU函数,最后一层激活层选取Tanh函数,最终输出大小128*128*1。
[0048] 前四层激活层选取的ReLU函数:
[0049]
[0050] 其中,x表示激活层输入数据,f(x)表示激活层输出数据。
[0051] 最后一层激活层选取的Tanh函数:
[0052]
[0053] 其中,tanh(x)表示Tanh激活层的输出,分布在(‑1,1)之间。
[0054] 如图4所示,判别器模型依次设置有三个卷积单元,重构层,全连接层,激活层。进一步地,卷积单元依次由卷积层和激活层连接组成。
[0055] 在其中一实施例中,判别器模型具体网络结构设置:输入大小为128*128*1,卷积层步长2,激活层LeakyReLU,斜率0.1,卷积层步长4,激活层LeakyReLU,斜率0.1,卷积层步长4,激活层LeakyReLU,斜率0.1,重构层输出为64*256*1,全连接层输出为1*1。
[0056] 前三层激活层选择LeakyReLU函数:
[0057]
[0058] 其中,LeakyReLU(x)表示LeakyReLU激活层的输出,表示斜率。
[0059] 最后一层激活层选择sigmoid函数:
[0060]
[0061] 其中,Sigmoid(x)表示sigmoid激活层的输出,分布在(0,1)之间。
[0062] 接下来,对损失函数进行说明。
[0063] 常用的损失函数不适用海豚叫声生成:
[0064] (1)由于很难量化判断叫声是否为海豚发出的,即不能用真实海豚叫声与生成海豚叫声的相似度去衡量,所以判别器模型损失函数、生成器模型损失函数不能采用均方误差损失函数;
[0065] (2)传统的GAN优化函数如下:
[0066]
[0067] 其中,V为传统GAN的优化函数,G表示生成器,D表示判别器,即G和D都要优化上式。在这种情况下,G想要最小化V,而D想要最大化V。由于D(·)输出范围为(0,1),loge(D(·))的输出范围为(‑∞,0)。因此,传统的GAN优化函数应用于本申请海豚叫声生成中易发生梯度爆炸。
[0068] 而本申请的判别器模型损失函数表示如下:
[0069]
[0070] 其中, 表示判别器模型损失函数,D(x)表示判别器模型对真实海豚叫声的判别结果,z表示随机噪声向量,G(z)表示生成器模型生成海豚叫声,Pr(x)表示真实海豚叫声x数据集, 表示在真实海豚叫声分布中的海豚叫声期望,Pn(z)表示随机噪声向量z数据集, 表示在随机噪声向量分布中的随机噪声向量,D(G(z))表示判别器模型对生成器模型生成海豚叫声的判别结果,表示判别器模型的输出结果,D(·)输出范围为[0,1],表示输入数据为真实海豚叫声的概率,D(·)越大表示为海豚叫声的概率越大。当判别器表现效果好时,D(G(z))应为0,D(x)应为1。
[0071] 本申请的生成器模型损失函数表示如下:
[0072]
[0073] 其中, 表示生成器模型损失函数。当生成器表现效果好时,D(G(z))应为1。
[0074] S103、使用海豚叫声样本、随机噪声向量训练判别器模型、生成器模型;
[0075] 具体地,将海豚叫声样本和随机噪声向量分别送入判别器模型和生成器模型进行对抗学习,采用梯度下降算法来优化生成器模型损失函数和判别器模型损失函数,更新生成器模型和判别器模型的参数,在多次迭代之后,生成器模型和判别器模型完成训练;
[0076] 实现过程如下:将海豚叫声样本分批次送入判别器模型,将412个海豚叫声样本分成每批次64个,同时将64个随机生成的1*100噪声向量送入生成器模型,进行对抗训练;在每次训练中计算判别器模型损失函数和生成器模型损失函数,利用adam梯度下降算法求解使判别器模型损失函数和生成器模型损失函数取得最小值的判别器模型参数和生成器模型参数并更新。所有海豚叫声样本进行一次训练需floor(412/64)=6次迭代,再对所有样本做1000个回合的训练,即一共需要6000次迭代完成生成器模型和判别器模型的训练,迭代完成后海豚叫声生成器模型训练完毕。
[0077] 其中,判别器模型和生成器模型采用adam梯度下降算法来分别优化判别器模型损失函数和生成器模型损失函数,即分别使生成器模型损失函数和判别器模型损失函数最小化,更新判别器模型和生成器模型的参数,其中的生成器模型和判别器模型的学习率为0.0002,梯度衰减因子为0.5。
[0078] S104、生成海豚叫声:利用训练好的海豚叫声生成器模型,获得生成海豚叫声的频域数据,再进行短时傅里叶逆变换(ISTFT)生成海豚叫声。
[0079] 具体地,随机生成N个1*100的噪声向量,输入到训练好的生成器模型,输出N个0.5s的海豚叫声STFT文件,随后进行ISTFT,即可生成海豚叫声。
[0080] 本发明提供一种基于生成对抗网络的海豚叫声生成方法,首先对海豚叫声进行预处理,后将海豚叫声样本和随机噪声向量分别送入判别器模型和生成器模型,对判别器模型和生成器模型进行对抗学习,采用梯度下降算法来优化本申请设计的生成器模型损失函数和判别器模型损失函数,更新生成器模型和判别器模型参数,在多次迭代之后,完成训练。利用训练好的海豚叫声生成器模型,生成海豚叫声。该方法可以有效的生成大量海豚叫声,为海豚声音采集与分析提供了大量数据资源。
[0081] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0082] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。