Tensorflow--基于卷积神经网络实现男女声音分类识别

现在网上基本都没有对应的基于神经网络声音分类识别的较简单的教程,所以我打算通过我自己的思路,编写出一个实现男女声音识别的一个深度学习的模型。

因为没有验证过该想法是否正确,所以想通过该博客来记录实验的结果,无论最终是否能成功识别男女声音,我都想将此次的实验记录下来。

首先从网站http://festvox.org/cmu_arctic/dbs_bdl.html,爬取相关的男人和女人的声音文件。

爬取过程的代码如下,省略,以下直接用到我的代码仓库中的爬取代码:(将在最后提供爬取的男女声音文件集合,A表示男人声音,B表示女人声音)

漫长的等待结果,由于是外网,虽然声音文件都很小,但是每个都要下载很久,这里不管了,先让他慢慢爬取,接着通过博客:

https://segmentfault.com/a/1190000020905581?utm_source=tag-newest

得到对应声音的波形图绘制方法。

思路就是通过声音所生成的波形图,然后将图片代入神经网络中,让其自己分析出特征,看能否实现声音的识别。

这时候,声音还没有爬取完成,我们接着等待,可以先去吃个苹果。

爬取完成之后,选取了qq音乐中的一首歌然后试试看能不能生成:

结果出现了,错误:RuntimeWarning: Couldn‘t find ffprobe or avprobe - defaulting to ffprobe, but may not work
warn("Couldn‘t find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)

通过这篇博客https://blog.csdn.net/qq_40152706/article/details/89058480得知,要下载对应ffprobe的包,所以这里先下载:

设置环境变量,解压后设置环境变量。

根据上述的博客,我们可以编写出以下的生成波形图的通用函数:

def sound_to_image(filename, out):
    # 读取生成波形图
    samplerate, data = wavfile.read(filename)
    times = np.arange(len(data)) / float(samplerate)
    # print(len(data), samplerate, times)
    # 可以以寸为单位自定义宽高  frameon=False 为关闭边框
    fig = plt.figure(figsize=(20, 5), facecolor="White")
    # plt.tick_params(top=‘off‘, bottom=‘off‘, left=‘off‘, right=‘off‘, labelleft=‘off‘, labelbottom=‘on‘)
    ax = fig.add_axes([0, 0, 1, 1])
    ax.axis(‘off‘)
    plt.fill_between(times, data, linewidth=‘1‘, color=‘green‘)
    plt.xticks([])
    plt.yticks([])
    plt.savefig(out, dpi=100, transparent=False, bbox_inches=‘tight‘, edgecolor=‘w‘)
    # plt.show()
# image_dirchange_to(r‘C:\Users\Halo\Desktop\1.6项目开发过程‘,‘.jpg‘,r‘C:\Users\Halo\Desktop\1.6项目开发过程\test‘,‘.bmp‘,20,20)

将图片转化成声波图的效果如下:

将图片转化成160*40的大小之后,经过不断的学习

构建卷积神经网络模型:

将对应的数据经过,参数的不断调试,测试得第一个卷积层大小为2,步长为1时有较好的识别效果。100次迭代之后,如下:

接下来抽取从网上下载的另外的声音文件进行识别:

去下载了几个声音来进行识别:

选中的是男人的声音标记为A,未选中的是女人的声音。

接下来构建卷积神经网络模型。用softmax函数进行识别,由于是二分类问题,构建的模型参数如下:

识别结果

其中arctic_a02开头的是男人声音,arctic_a01开头是女人的声音,由此,声音识别的卷积神经网络搭建完成,能够分辨出男人女人的声音。

5个样本识别正确率100%。

原文地址:https://www.cnblogs.com/halone/p/12548024.html

时间: 2024-11-03 10:02:40

Tensorflow--基于卷积神经网络实现男女声音分类识别的相关文章

深度学习与脑机接口_1(基于卷积神经网络的P300信号检测)

参考论文<Convolutional Neutral Networks for P300 Detection with Application to Brain-Computer Interfaces> Hubert Cecotti and Axel Gra¨ser ?1.所研究问题:检测单次刺激P300信号的有无(即不经过叠加平均) 以下四个图全部都包含P300波形: 我们只能从图1和4中观察出P300波形,图2和图3很难确定的说P300波形存在与否(然而实际上是有的) 提出问题:如何在叠加

[blog]基于卷积神经网络的以图搜图算法实现

基于卷积神经网络的以图搜图算法实现        如果用这个名称去搜索论文,一定有不少.为什么了,因为从原理上来看,卷积神经网络就非常适合找图片的相似的地方.想想看,许多大牛.小牛.微牛的文章都是说如何从mnist中.从CIFA10中.从CIFA100中去找到相似的图片.那么,反过来想一想,如果那么复杂的数据卷积神经网络都能够去处理,那么对于这种相对来说,比较简单的"以图搜图"的需求,应该更容易来解决.这里的神经网络解决这个问题,还是尝试得到一种较为通用的问题解决方法. 零.数据集的创

基于卷积神经网络CNN的电影推荐系统

本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务. 推荐系统在日常的网络应用中无处不在,比如网上购物.网上买书.新闻app.社交网络.音乐网站.电影网站等等等等,有人的地方就有推荐.根据个人的喜好,相同喜好人群的习惯等信息进行个性化的内容推荐.比如打开新闻类的app,因为有了个性化的内容,每个人看到的新闻首页都是不一样的. 这当然是很有用的,在信息爆炸的今天,获取信息的途径和方式多种多样,人们花费时间最多的不再是去哪获取信息,而是要在众多的信息中寻找自己感兴趣的,这就

TensorFlow实战-TensorFlow实现卷积神经网络CNN-第5章

第5章-TensorFlow实现卷积神经网络CNN 5.1 卷积神经网络简介 卷积神经网络CNN最初是为了解决图像识别等问题设计的,当然现在的应用已经不限于图像和视频,也可以用于时间序列信号,比如音频信号.文本数据等. 在深度学习出现之前,必须借助SIFT.HoG等算法提取出有效而丰富的特征,再集合SVM等机器学习算法进行图像识别. CNN作为一个深度学习架构被提出来最初的诉求是降低对图像数据预处理的要求,以及避免复杂的特征工程.CNN最大的特点是在于卷积的权值共享结构,可以大幅减少神经网络的参

tensorflow学习之(十)使用卷积神经网络(CNN)分类手写数字0-9

#卷积神经网络cnn import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #数据包,如果没有自动下载 number 1 to 10 data mnist = input_data.read_data_sets('MNIST_data',one_hot=True) #用测试集来评估神经网络的准确度 def computer_accuracy(v_xs,v_ys): global pre

卷积神经网络_(2)_分类与回归_几类经典网络简介

1.经典神经网络有:2012年提出的AlexNet和2014年提出的VGGNet,结构图分别如下: 2.分类与回归: (1)分类(classfication):就是经过经过一系列的卷积层和池化层之后,再经过全连接层得到样本属于每个类的得分,再用比如softmax分类其对其进行分类: (2)回归(regression):相当于用一个矩形框来框住要识别的物体,即localization; 如下: 这里,回归用了拟合的方法,即给定输入中物体的位置(x,yw,h),再用卷积网络的输出(x',y',w',

读《基于卷积神经网络的木材缺陷识别》 徐姗姗

0 引言 介绍了木材缺陷检测的作用和价值,近年以来的普遍使用的方法,以及使用卷积神经网络的好处. 1 卷积神经网络 介绍卷积神经网络的现在使用的方面,成熟的技术,然后介绍组成结构(就是常见的CNN模型),然后顺带的点名了使用CNN的好处. 2 网络结构设计 文中主要有三种类别的样本,于是最终可以利用CNN分3类,实验中使用了8层网络,对数据的学习使用的是渐进式的学习方法. 3 试验分析 给出了实验的结果,以及自己的部分理解,和对实验数据的解释. 4 结论 CNN的好处,以及解决了问题,需要改进的

基于卷积神经网络的单图像去雨

图像去雨是图像处理和计算机视觉领域共同关心的重要问题,传统的关于图像去雨的图像恢复方法在某些特定的情况下会失效,鉴于深度卷积神经网络(CNN)在计算机视觉领域的迅猛发展及其良好的学习性能,越来越多的研究者将CNN应用到图像恢复领域.本文主要从图像处理和物理模型的研究角度,并结合卷积神经网络技术,对图像去雨技术进行综述.并主要介绍近几年提出的典型的去雨CNN网络的基本原理和研究进展,并对这些方法给出其视觉上的效果和客观的评估数据. 近年来,随着计算机软件和硬件技术的不断发展,计算能力不断增强,对雨

吴裕雄 python 神经网络——TensorFlow 使用卷积神经网络训练和预测MNIST手写数据集

import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_data #设置输入参数 batch_size = 128 test_size = 256 # 初始化权值与定义网络结构,建构一个3个卷积层和3个池化层,一个全连接层和一个输出层的卷积神经网络 # 首先定义初始化权重函数 def init_weights(shape): return tf.Variabl