精华内容
下载资源
问答
  • python脚本执行识别声音的任务,并在检测到这些声音后运行特定的命令。 一些技术细节 该脚本基于为标准具.wav文件创建声音指纹的功能。 (Etalon文件分为几部分。 然后在每个部分中,我们都在寻找与声音的最大...
  • Python语音识别API总结

    2019-08-29 14:45:38
    目录语音识别相关API梅尔频率倒谱系数(mfcc)声音合成语音识别 语音识别相关API 语音识别关键概念:声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。 通过傅里叶变换,...

    语音识别相关API

    语音识别关键概念:声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。
    通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础。

    梅尔频率倒谱系数(mfcc)

    主要思想:提取13个特征,生成梅尔频率倒谱系数矩阵。
    API:

    import scipy.io.wavfile as wf
    import python_speech_features as sf
    
    # 提取采样率,特征
    sample_rate,sigs = wf.read('xxx.wav')
    # 生成mfcc矩阵
    mfcc = sf.mfcc(sigs,sample_rate)
    

    声音合成

    案例:

    import json
    import numpy as np
    import scipy.io.wavfile as wf
    # 读取存有音频信息的json文件
    with open('../data/12.json', 'r') as f:
        freqs = json.loads(f.read())
    
    tones = [
    ('G5', 1.5),
    ('A5', 0.5),
    ('G5', 1.5),
    ('E5', 0.5),
    ('D5', 0.5),
    ('E5', 0.25),
    ('D5', 0.25),
    ('C5', 0.5),
    ('A4', 0.5),
    ('C5', 0.75)]
    
    # 设置采样率
    sample_rate = 44100
    # 创建一个空数组储存合成音频信息
    music = np.empty(shape=1)
    
    for tone, duration in tones:
        times = np.linspace(0, duration, duration * sample_rate)
        sound = np.sin(2 * np.pi * freqs[tone] * times)
        music = np.append(music, sound)
    music *= 2 ** 15
    music = music.astype(np.int16)
    wf.write('music.wav', sample_rate, music)
    

    语音识别

    基本步骤: 提取声音信息(采样率,特征),生成梅尔频率倒谱系数矩阵(mfcc),训练隐马尔科夫模型,做最后的识别。
    API:

    import numpy as np
    import scipy.io.wavfile as wf
    import python_speech_features as sf
    import hmmlearn.hmm as hl
    
    # 提取样本信息
    train_x,train_y = [],[]
    mfccs = np.array([])
    for sound_files in files_list:
        for sound_file in sound_files:
            sample_rate,sigs = wf.read(sound_file)
            mfcc = sf.mfcc(sigs,sample_rate)
            # 将mfcc矩阵添加到mfccs中
            if len(mfccs) == 0:
                mfccs == mfcc
            else:
                mfccs = np.append(mfccs,mfcc)
        # 将mfccs矩阵列表添加到训练集中  
        train_x.append(mfccs)
    # 最终的train_x len(sound_files)个特征的矩阵
    # train_y存的是特征标签,比如:apple,banana,pear
    
    # 构建并训练隐马模型
    models = {}
    for mfccs,label in zip(train_x,train_y):
        model = hl.GaussianHMM(
            n_components = 4, covariance_type = 'diag',
            n_iter = 1000
        )
        models[label] = model.fit(mfccs)
    
    # 同样方法获取测试集数据
    # 测试
    pred_y = []
    for mfccs in test_x: 
        # 验证每个模型对当前mfcc的匹配度得分
        best_score, best_label = None, None
        for label, model in models.items():
            score = model.score(mfccs)
            if (best_score is None) or (best_score < score):
                best_score = score
                best_label = label
        pred_y.append(best_label)
    
    print(test_y)
    print(pred_y)
    
    展开全文
  • 【语音识别】之梅尔频率倒谱系数(mfcc)及Python实现一、mel滤波器二、mfcc特征Python实现 语音识别系统的第一步是进行特征提取,mfcc是描述短时功率谱包络的一种特征,在语音识别系统中被广泛应用。 一、mel...

    【语音识别】之梅尔频率倒谱系数(mfcc)及Python实现


    语音识别系统的第一步是进行特征提取,mfcc是描述短时功率谱包络的一种特征,在语音识别系统中被广泛应用。

    一、mel滤波器

    每一段语音信号被分为多帧,每帧信号都对应一个频谱(通过FFT变换实现),频谱表示频率与信号能量之间的关系。mel滤波器是指多个带通滤波器,在mel频率中带通滤波器的通带是等宽的,但在赫兹(Hertz)频谱内mel滤波器在低频处较密集切通带较窄,高频处较稀疏且通带较宽,旨在通过在较低频率处更具辨别性并且在较高频率处较少辨别性来模拟非线性人类耳朵对声音的感知。
    赫兹频率和梅尔频率之间的关系为:
    F m e l = 1125 ln ⁡ ( 1 + f / 700 ) {F_{mel}} = 1125\ln (1 + f/700) Fmel=1125ln(1+f/700)

    f = 700 ( e F / 1125 − 1 ) f = 700\left( {{e^{F/1125}} - 1} \right) f=700(eF/11251)
    假设在梅尔频谱内,有 M M M个带通滤波器 H m ( k ) , 0 ≤ m &lt; M {H_m}\left( k \right),0 \le m &lt; M Hm(k),0m<M,每个带通滤波器的中心频率为 F ( m ) F(m) F(m)每个带通滤波器的传递函数为:
    H m ( k ) = { 0 , k &lt; F ( m − 1 ) k − F ( m − 1 ) F ( m ) − F ( m − 1 ) , F ( m − 1 ) ≤ k ≤ F ( m ) F ( m + 1 ) − k F ( m + 1 ) − F ( m ) , F ( m ) ≤ k ≤ F ( m + 1 ) 0 , k &gt; F ( m + 1 ) {H_m}\left( k \right) = \left\{ {\begin{matrix} {0,k &lt; F\left( {m - 1} \right)}\\ {\frac{{k - F\left( {m - 1} \right)}}{{F(m) - F(m - 1)}},F(m - 1) \le k \le F(m)}\\ {\frac{{F\left( {m + 1} \right) - k}}{{F(m + 1) - F(m)}},F(m) \le k \le F(m + 1)}\\ {0,k &gt; F(m + 1)} \end{matrix}} \right. Hm(k)=0,k<F(m1)F(m)F(m1)kF(m1),F(m1)kF(m)F(m+1)F(m)F(m+1)k,F(m)kF(m+1)0,k>F(m+1)
    下图为赫兹频率内的mel滤波器,带通滤波器个数为24:
    在这里插入图片描述

    二、mfcc特征

    MFCC系数提取步骤:
    (1)语音信号分帧处理
    (2)每一帧傅里叶变换---->功率谱
    (3)将短时功率谱通过mel滤波器
    (4)滤波器组系数取对数
    (5)将滤波器组系数的对数进行离散余弦变换(DCT)
    (6)一般将第2到底13个倒谱系数保留作为短时语音信号的特征

    Python实现

    import wave
    import numpy as np
    import math
    import matplotlib.pyplot as plt
    from scipy.fftpack import dct
    
    def read(data_path):
        '''读取语音信号
        '''
        wavepath = data_path
        f = wave.open(wavepath,'rb')
        params = f.getparams()
        nchannels,sampwidth,framerate,nframes = params[:4] #声道数、量化位数、采样频率、采样点数
        str_data = f.readframes(nframes) #读取音频,字符串格式
        f.close()
        wavedata = np.fromstring(str_data,dtype = np.short) #将字符串转化为浮点型数据
        wavedata = wavedata * 1.0 / (max(abs(wavedata))) #wave幅值归一化
        return wavedata,nframes,framerate
    
    def enframe(data,win,inc):
        '''对语音数据进行分帧处理
        input:data(一维array):语音信号
              wlen(int):滑动窗长
              inc(int):窗口每次移动的长度
        output:f(二维array)每次滑动窗内的数据组成的二维array
        '''
        nx = len(data) #语音信号的长度
        try:
            nwin = len(win)
        except Exception as err:
            nwin = 1	
        if nwin == 1:
            wlen = win
        else:
            wlen = nwin
        nf = int(np.fix((nx - wlen) / inc) + 1) #窗口移动的次数
        f = np.zeros((nf,wlen))  #初始化二维数组
        indf = [inc * j for j in range(nf)]
        indf = (np.mat(indf)).T
        inds = np.mat(range(wlen))
        indf_tile = np.tile(indf,wlen)
        inds_tile = np.tile(inds,(nf,1))
        mix_tile = indf_tile + inds_tile
        f = np.zeros((nf,wlen))
        for i in range(nf):
            for j in range(wlen):
                f[i,j] = data[mix_tile[i,j]]
        return f
    
    def point_check(wavedata,win,inc):
        '''语音信号端点检测
        input:wavedata(一维array):原始语音信号
        output:StartPoint(int):起始端点
               EndPoint(int):终止端点
        '''
        #1.计算短时过零率
        FrameTemp1 = enframe(wavedata[0:-1],win,inc)
        FrameTemp2 = enframe(wavedata[1:],win,inc)
        signs = np.sign(np.multiply(FrameTemp1,FrameTemp2)) # 计算每一位与其相邻的数据是否异号,异号则过零
        signs = list(map(lambda x:[[i,0] [i>0] for i in x],signs))
        signs = list(map(lambda x:[[i,1] [i<0] for i in x], signs))
        diffs = np.sign(abs(FrameTemp1 - FrameTemp2)-0.01)
        diffs = list(map(lambda x:[[i,0] [i<0] for i in x], diffs))
        zcr = list((np.multiply(signs, diffs)).sum(axis = 1))
        #2.计算短时能量
        amp = list((abs(enframe(wavedata,win,inc))).sum(axis = 1))
    #    # 设置门限
    #    print('设置门限')
        ZcrLow = max([round(np.mean(zcr)*0.1),3])#过零率低门限
        ZcrHigh = max([round(max(zcr)*0.1),5])#过零率高门限
        AmpLow = min([min(amp)*10,np.mean(amp)*0.2,max(amp)*0.1])#能量低门限
        AmpHigh = max([min(amp)*10,np.mean(amp)*0.2,max(amp)*0.1])#能量高门限
        # 端点检测
        MaxSilence = 8 #最长语音间隙时间
        MinAudio = 16 #最短语音时间
        Status = 0 #状态0:静音段,1:过渡段,2:语音段,3:结束段
        HoldTime = 0 #语音持续时间
        SilenceTime = 0 #语音间隙时间
        print('开始端点检测')
        StartPoint = 0
        for n in range(len(zcr)):
            if Status ==0 or Status == 1:
                if amp[n] > AmpHigh or zcr[n] > ZcrHigh:
                    StartPoint = n - HoldTime
                    Status = 2
                    HoldTime = HoldTime + 1
                    SilenceTime = 0
                elif amp[n] > AmpLow or zcr[n] > ZcrLow:
                    Status = 1
                    HoldTime = HoldTime + 1
                else:
                    Status = 0
                    HoldTime = 0
            elif Status == 2:
                if amp[n] > AmpLow or zcr[n] > ZcrLow:
                    HoldTime = HoldTime + 1
                else:
                    SilenceTime = SilenceTime + 1
                    if SilenceTime < MaxSilence:
                        HoldTime = HoldTime + 1
                    elif (HoldTime - SilenceTime) < MinAudio:
                        Status = 0
                        HoldTime = 0
                        SilenceTime = 0
                    else:
                        Status = 3
            elif Status == 3:
                break
            if Status == 3:
                break
        HoldTime = HoldTime - SilenceTime
        EndPoint = StartPoint + HoldTime
        return FrameTemp1[StartPoint:EndPoint]
    
    
    def mfcc(FrameK,framerate,win):
        '''提取mfcc参数 
        input:FrameK(二维array):二维分帧语音信号
              framerate:语音采样频率
              win:分帧窗长(FFT点数)
        output:
        '''
        #mel滤波器
        mel_bank,w2 = mel_filter(24,win,framerate,0,0.5)
        FrameK = FrameK.T
        #计算功率谱
        S = abs(np.fft.fft(FrameK,axis = 0)) ** 2
        #将功率谱通过滤波器
        P = np.dot(mel_bank,S[0:w2,:])
        #取对数
        logP = np.log(P)
        #计算DCT系数
    #    rDCT = 12
    #    cDCT = 24
    #    dctcoef = []
    #    for i in range(1,rDCT+1):
    #        tmp = [np.cos((2*j+1)*i*math.pi*1.0/(2.0*cDCT)) for j in range(cDCT)]
    #        dctcoef.append(tmp)
    #    #取对数后做余弦变换   
    #    D = np.dot(dctcoef,logP)
        num_ceps = 12
        D = dct(logP,type = 2,axis = 0,norm = 'ortho')[1:(num_ceps+1),:]
        return S,mel_bank,P,logP,D
        
    
    
    def mel_filter(M,N,fs,l,h):
        '''mel滤波器
        input:M(int):滤波器个数
              N(int):FFT点数
              fs(int):采样频率
              l(float):低频系数
              h(float):高频系数
        output:melbank(二维array):mel滤波器
        '''
        fl = fs * l #滤波器范围的最低频率
        fh = fs * h #滤波器范围的最高频率
        bl = 1125 * np.log(1 + fl / 700) #将频率转换为mel频率
        bh = 1125 * np.log(1 + fh /700) 
        B = bh - bl #频带宽度
        y = np.linspace(0,B,M+2) #将mel刻度等间距
        print('mel间隔',y)
        Fb = 700 * (np.exp(y / 1125) - 1) #将mel变为HZ
        print(Fb)
        w2 = int(N / 2 + 1)
        df = fs / N
        freq = [] #采样频率值
        for n in range(0,w2):
            freqs = int(n * df)
            freq.append(freqs)
        melbank = np.zeros((M,w2))
        print(freq)
        
        for k in range(1,M+1):
            f1 = Fb[k - 1]
            f2 = Fb[k + 1]
            f0 = Fb[k]
            n1 = np.floor(f1/df)
            n2 = np.floor(f2/df)
            n0 = np.floor(f0/df)
            for i in range(1,w2):
                if i >= n1 and i <= n0:
                    melbank[k-1,i] = (i-n1)/(n0-n1)
                if i >= n0 and i <= n2:
                    melbank[k-1,i] = (n2-i)/(n2-n0)
            plt.plot(freq,melbank[k-1,:])
        plt.show()
        return melbank,w2
    
    if __name__ == '__main__':
        data_path = 'audio_data.wav'
        win = 256
        inc = 80
        wavedata,nframes,framerate = read(data_path)
        FrameK = point_check(wavedata,win,inc)
        S,mel_bank,P,logP,D = mfcc(FrameK,framerate,win)
    
    展开全文
  • python实现语音识别

    2020-09-04 11:29:42
    使用python语言开发,可以应用于arm开发的语音识别,gui程序的语音识别等。 安装教程 使用百度语音识别aip,你需要设置__init__中的三个接口参数 你需要使用AudioRecognition.microphone()方法对输入设备检测,并...

    AudioRecognition

    介绍

    使用python语言开发,可以应用于arm开发的语音识别,gui程序的语音识别等。

    安装教程

    1. 使用百度语音识别aip,你需要设置__init__中的三个接口参数
    2. 你需要使用AudioRecognition.microphone()方法对输入设备检测,并修改对应参数(百度语音识别的音频采样率不建议过高)
    3. 你需要安装pyaudio、baidu-aip的python运行库,在conda中没有baidu-aip库,必须使用pip下载

    使用说明

    1. 你可以使用record()方法进行语音录制,使用recognition()方法进行语音识别
    2. 成员变量result为识别结果,结果为一个字符串型

    代码预览

    import pyaudio
    import wave
    from aip import AipSpeech
    
    class AudioRecognition(object):
        def __init__(self):
            p = pyaudio.PyAudio()
            self.dir=p.get_device_info_by_index(0)
            self.chunk = 1024
            self.sample_format = pyaudio.paInt16
            self.channels = 1
            self.fs = 16000   #采样频率
            self.seconds = 2   #每次录制时间
            self.filename = "output.wav" #输出文件名
            self.result = '未识别'  #识别结果
            #百度aip接口
            self.APP_ID = 'xxxxx'
            self.API_KEY = 'xxxxxx'
            self.SECRET_KEY = 'xxxxx'
    
        def record(self):#录入
            p = pyaudio.PyAudio()  # Create an interface to PortAudio
            stream = p.open(format=self.sample_format,
                            channels=self.channels,
                            rate=self.fs,
                            frames_per_buffer=self.chunk,
                            input=True,
                            )
            frames = []
            for i in range(0, int(self.fs / self.chunk * self.seconds)):
                data = stream.read(self.chunk)
                frames.append(data)
                if i % 5 == 0:
                    print("*")
            stream.stop_stream()
            stream.close()
            p.terminate()
            wf = wave.open(self.filename, 'wb')
            wf.setnchannels(self.channels)
            wf.setsampwidth(p.get_sample_size(self.sample_format))
            wf.setframerate(self.fs)
            wf.writeframes(b''.join(frames))
            wf.close()
    
        def recognition(self): #识别
            client = AipSpeech(self.APP_ID, self.API_KEY, self.SECRET_KEY)
    
            # 读取文件
            def get_file_content(file_path):
                with open(file_path, 'rb') as fp:
                    return fp.read()
    
            # 识别本地文件
            result = client.asr(get_file_content(self.filename), 'wav', 16000, {
                'dev_pid': 1537,  # 默认1537(普通话 输入法模型)
            })
            self.result = result['result'][0]
    
        def microphone(self): #设备识别,打印系统音频设备参数
            p = pyaudio.PyAudio()
            print(p)
            for i in range(p.get_device_count()):
                print(p.get_device_info_by_index(i))
            print(p.get_device_info_by_index)
    
    
    
    
    
    
    if __name__ == '__main__':
        #从录制到识别出结果整个过程
        a=AudioRecognition()
        print("开始录制")
        a.record()
        print("正在识别......")
        a.recognition()
        print("结果")
        print(a.result)
        #a.microphone()
    
    展开全文
  • python频率分布直方图

    千次阅读 2020-11-08 23:22:26
    Python频率分布直方图,不显示图形怎么办Python频率分布直方图导入数据并作直方图图形不显示的解决方法 Python频率分布直方图 我们在拿到一组数据时,为了观察其大致分布,常常需要绘制其频率分布直方图。下面...

    Python画频率分布直方图,不显示图形怎么办

    Python画频率分布直方图

    我们在拿到一组数据时,为了观察其大致分布,常常需要绘制其频率分布直方图。下面记录一下今天捯饬了大半天,用pycharm画出频率分布直方图的过程

    导入数据并作直方图

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    import math
    
    //编写函数
    # 函数的定义参考博客:https://blog.csdn.net/whgyxy/article/details/88713917,并进行一些调整以适应非整数的数据
    # 按照固定区间长度绘制频率分布直方图
    # bins_interval 区间的长度
    # margin        设定的左边和右边空留的大小
    def probability_distribution(data, bins_interval=1, margin=1):
        bins = np.arange(math.floor(np.min(data)), math.ceil(np.max(data)), bins_interval)
        print(len(bins))
        for i in np.arange(0, len(bins)):
            print(bins[i])
        plt.xlim(math.floor(np.min(data)) - margin, math.ceil(np.max(data)) + margin)
        plt.title("Probability-distribution")
        plt.xlabel('Interval')
        plt.ylabel('Probability/Interval')
        # normed参数调整density,为频率分布density=True,频次分布density=False
        prob,left,rectangle = plt.hist(x=data, bins=bins, density=True, histtype='bar')
        for x, y in zip(left, prob):
            # 字体上边文字
            # 频率分布数据 normed=True
            plt.text(x + bins_interval / 2, y + 0.003, '%.2f' % y, ha='center', va='top')
        plt.show()
      
      //调用函数
     data=pd.read_excel('data.xlsx','Sheet3')  #读入数据
     if __name__ == '__main__':
       probability_distribution(data=data, bins_interval=5,margin=0)
    

    图形不显示的解决方法

    这时候使用以上代码会发现,没有报错,但是图形迟迟不出来。经过多次尝试,发现使用随机数据可以出图,但是导入的数据不行,所以是数据类型的问题。需要在导入数据时进行一下数据类型的转化即可,代码如下:

    data=pd.read_excel('data.xlsx','Sheet3')  #导入数据
    data=np.array(data) #通过该方法将数据由pandas.core.frame.Dataframe类型转变为numpy.ndarray格式
    

    到这里就可以正常运行啦~需要注意的是python的循环是通过缩进来识别的,所以要注意语句的缩进。

    展开全文
  • 今天给大家出一个关于Python爬虫面试题的总结,相对于来说出现频率比较高的一些! 1. 为什么 requests 请求需要带上 header? 原因是:模拟浏览器,欺骗服务器,获取和浏览器一致的内容 header 的形式:字典 headers...
  • python 报警声音的实现

    千次阅读 2019-08-31 11:04:20
    windows 上 import winsound duration = 1000 # millisecond ...其中,freq 是频率(以赫兹为单位),而duration 是持续时间 单位是 毫秒。 https://cloud.tencent.com/developer/ask/53181 待整...
  • 利用python进行识别相似图片

    万次阅读 2016-12-15 17:16:22
    在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。 当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在本文简单几句就说...
  • 主要为大家详细介绍了语音识别之梅尔频率倒谱系数及Python实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本软件通过电脑操作手机并进行图像识别实现功能。根据手机分辨率不同有不同的准确度表现,建议自己截图man.jpg通过支付宝导入的手机通讯录名单来判断联系人性别(为了提高速度只判断是否男性或无性别数据)用到了...
  • python NLTK识别字符串中的人名等,命名实体识别-附件资源
  • 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础。 案例:画出语音信号的波形和频率分布,(freq....
  • Python 音频识别以及信号处理(一)

    千次阅读 2020-07-20 10:54:21
    Python 音频信号处理音频信号类型识别起始频点音频数据fft转化 音频信号类型 1.输入信号为待测试模块发出的阶梯型频率的信号 我们通过声卡采集,采集到的信号如下图: 我们通过excel表格来显示文本数据比较明显: ...
  • 利用python进行识别相似图片(一)

    万次阅读 2016-05-04 12:52:59
    在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。 当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在本文简单几句就说清...
  • 基于Python的话者识别系统

    千次阅读 多人点赞 2019-10-06 23:42:17
    基于Python的话者识别系统 一:写在开头 语言是人类最重要的交流工具,它方便自然,准确高效。随着社会的不断发展,各种各样的机器参与了人类的生产活动和社会活动,因此人对机器的操纵就越来越重要。人们发现,人和...
  • 目录语音识别 MFCC 隐马尔科夫模型声音合成 声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。 Python资源共享群:626017123 通过傅里叶变换,可以将时间域的声音...
  • Python实时语音识别控制

    千次阅读 2018-08-07 15:51:00
    Python实时语音识别控制 概述 本文中的语音识别功能采用 百度语音识别库 ,首先利用 PyAudio 库录制语音指令,保存为受支持的 wav 音频文件,然后利用 百度语音识别库 提供的方法实现语音识别,最后检测识别结果,...
  • 本文实例为大家分享了用KNN算法手写体识别的具体代码,供大家参考,具体内容如下 #!/usr/bin/python #coding:utf-8 import numpy as np import operator import matplotlib import matplotlib.pyplot as plt ...
  • 这也是使用 python 标准库的方法,我们可以把写好的一些可复用的函数,封装成模块然后发布到python的本地库中。 然后在其他的程序就可以导入你这个写好的模块了。 简单来说模块就像一个常用的零件,例如组装一个高达...
  • 对“待分类”中的每一个图像,根据模式识别算法判断它与“已知类别”中哪一个图像最相似。 如果最相似的图像与它的文件名前四个字符相同,则说明识别正确,否则是识别错误。 计算出识别率:“待分类”中识别正确的...
  • Python图像识别,图片相似度计算!

    千次阅读 2019-08-29 16:23:53
    识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等......对应的风景照是蓝天还是大海......做一系列的分类。 从机器学习的的角度来说,首先要提取图片的特征,将这些特征进行分类处理,...
  • Python+Opencv进行识别相似图片

    千次阅读 2017-05-22 16:55:47
    在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。 当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在本文简单几句就说...
  • 基于python的手写数字识别(KNN算法) 准备数据 knn算法 简单图片识别(txt格式) 简单图片识别
  • python3实现简单的语音识别转化成文字

    万次阅读 多人点赞 2019-07-26 16:56:38
    自己对python感兴趣,利用业余时间弄了个自动回复微信消息的小机器人,纯属自己瞎...以python3为基础语言,用到了 itchat +谷歌的语音识别+思知机器人API+pydub类库。简单说下: 1.itchat 他的开发者介绍说这是实...
  • import os import numpy as np from scipy.io import wavfile # 仅限于wav音频文件 ...from python_speech_features import mfcc 创建HMM类详见:https://www.cnblogs.com/pinard/p/7001397.html ...
  • python人脸识别(三)

    2019-02-26 22:40:29
    6.0人脸识别与机器学习  6.1测量人脸的方法      6.2KNN近邻算法   最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其...
  • Python+Opencv识别两张相似图片

    万次阅读 2016-09-06 18:21:42
    python的功能实在太强大,这篇文章主要介绍了Python+Opencv识别两张相似图片的相关资料,文中利用Opencv库进行了更简洁化的实现,感兴趣的小伙伴们可以参考一下在网上看到python做图像识别的相关文章后,真心感觉...
  • AI与Python - 语音识别

    千次阅读 2019-04-06 00:11:41
    在本章中,我们将学习使用AI和Python进行语音识别。 言语是成人人际交往的最基本手段。语音处理的基本目标是提供人与机器之间的交互。 语音处理系统主要有三个任务 - 首先,语音识别允许机器捕捉我们说的单词,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,212
精华内容 8,084
关键字:

python识别声音频率

python 订阅