精华内容
下载资源
问答
  • 在使用本代码前请自行安装pip install baidu-aip库,然后自己注册百度语音的账号以及ID、key等,语音识别时要求录音质量与官方要求一致方可,否则可能出现错误。其中atow.py表示语音识别的代码,wtoa.py表示语音合成...
  • Python:3.5百度语音识别官方文档 百度语音合成官方文档注意事项:接口支持 POST 和 GET两种方式,个人支持用post模式,因为get的话,如果get数据太长,会出现缺失的。 语音识别要求支持的语音格式 原始 PCM 的...

    操作系统:Windows
    Python:3.5
    欢迎加入学习交流QQ群:657341423


    百度语音识别官方文档
    百度语音合成官方文档

    注意事项:接口支持 POST 和 GET两种方式,个人支持用post模式,因为get的话,如果get数据太长,会出现缺失的。
    语音识别要求支持的语音格式
    原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的压缩格式有:pcm(不压缩)、wav、opus、amr、x-flac。
    简单说,语音参数必需要 8k/16k 采样率、16bit 位深、单声道,不然会出现内容和文字不相符的情况。


    网上这类教程基本上都是Python urllib2实现的,这里我使用requests实现。

    import requests
    import json
    import base64
    import wave
    from pydub import AudioSegment ###需要安装pydub、ffmpeg
    import io
    
    class BaiduRest:
    	def __init__(self, cu_id, api_key, api_secert):
    		# token认证的url
    		self.token_url = "https://openapi.baidu.com/oauth/2.0/token"
    		# 语音合成的resturl
    		self.getvoice_url = "http://tsn.baidu.com/text2audio"
    		# 语音识别的resturl
    		self.upvoice_url = 'http://vop.baidu.com/server_api'
    		self.cu_id = cu_id
    		self.getToken(api_key, api_secert)
    		return
    
    	def getToken(self, api_key, api_secert):
    		# 1.获取token
    		data={'grant_type':'client_credentials','client_id':api_key,'client_secret':api_secert}
    		r=requests.post(self.token_url,data=data)
    		Token=json.loads(r.text)
    		self.token_str = Token['access_token']
    		
    
    	def getVoice(self, text, filename):
    		# 2. 向Rest接口提交数据
    		data={'tex':text,'lan':'zh','cuid':self.cu_id,'ctp':1,'tok':self.token_str}
    		r=requests.post(self.getvoice_url,data=data,stream=True)
    		voice_fp = open(filename,'wb')
    		voice_fp.write(r.raw.read())
    		# for chunk in r.iter_content(chunk_size=1024):
    			# voice_fp.write(chunk)
    		voice_fp.close()
    		
    
    	def getText(self, filename):
    		# 2. 向Rest接口提交数据
    		data = {"format":"wav","rate":16000, "channel":1,"token":self.token_str,"cuid":self.cu_id,"lan":"zh"}
    		# 语音的一些参数
    		wav_fp = open(filename,'rb')
    		voice_data = wav_fp.read()
    		data['len'] = len(voice_data)
    		data['speech'] = base64.b64encode(voice_data).decode('utf-8')
    		post_data = json.dumps(data)
    		r=requests.post(self.upvoice_url,data=bytes(post_data,encoding="utf-8"))
    		# 3.处理返回数据
    		return r.text
    	
    	def ConvertToWav(self,filename,wavfilename):
    		#先从本地获取mp3的bytestring作为数据样本
    		fp=open("out.mp3",'rb')
    		data=fp.read()
    		fp.close()
    		#主要部分
    		aud=io.BytesIO(data)
    		sound=AudioSegment.from_file(aud,format='mp3')
    		raw_data = sound._data
    		#写入到文件,验证结果是否正确。
    		l=len(raw_data)
    		f=wave.open(wavfilename,'wb')
    		f.setnchannels(1)
    		f.setsampwidth(2)
    		f.setframerate(16000)
    		f.setnframes(l)
    		f.writeframes(raw_data)
    		f.close()
    		return wavfilename
    
    if __name__ == "__main__":
    	#api_key和api_secert 自行编写
    	api_key = "" 
    	api_secert = ""
    	# 初始化
    	bdr = BaiduRest("test_python", api_key, api_secert)
    	# 将字符串语音合成并保存为out.mp3
    	bdr.getVoice("问题,作为开发人员,你的职责是什么,答按照工作进度和编程工作规范编写系统中的关键模块,设计编写详细设计,配合测试员修改相应的程序,提供软件的后期技术支持,进行编码实现,代码走查,单元测试,产品交付,", "out.mp3")
    	# 识别test.wav语音内容并显示
    	print(bdr.getText(bdr.ConvertToWav("out.mp3","test.wav")))
    

    运行结果:

    这里写图片描述


    设计思想:这里先将语音合成,生成MP3格式,然后将这段语音转换wav格式。然后再去语音识别。
    在实际开发中,可以通过录音,得到一段音频文件,然后再转换wav格式。再去识别即可。
    这里涉及到pydub 的安装。直接pip install pydub安装即可。
    ffmpeg安装可以参考:ffmpeg安装
    ffmpeg下载一定是static
    这里写图片描述


    总结:基本上都是调用百度的api接口就完成语音的识别和合成,但是值得注意的语音识别的要求和条件,就算得到wav格式,建议都转换一下格式。不然识别上会与内容不同。

    展开全文
  • 注册个百度账号 ...创建python 环境, 安装百度aip pip install baidu-aip 4.新建一个python 文件, from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你...
    1. 注册个百度账号
    2. 在控制台创建应用,创建完应用后会给你APP_ID,API_KEY ,SECRET_KEY。
    3. 创建python 环境,

    安装百度aip

    pip install baidu-aip
    

    4.新建一个python 文件,

    from aip import AipSpeech
    
    
    class Asr(AipSpeech):
    
        def __init__(self):
            appId = 'APP_ID'
            apiKey = 'API_KEY '
            secretKey = 'SECRET_KEY'
            # 方法一
            # AipSpeech.__init__(self,appId,apiKey,secretKey)
            # 方法二
            # super().__init__(appId,apiKey,secretKey)
            # 方法三
            super(Asr,self).__init__(appId,apiKey,secretKey)
    
        def get_file_content(self,filepath):
        	"""读取录音"""
            with open(filepath,"rb") as fp:
                return fp.read()
    
        def spr(self,filePath):
        	"""识别录音"""
            speech = self.get_file_content(filePath)
            return self.asr(speech,"pcm",16000,{'dev_pid': 1536,})
    if __name__ == '__main__':
        filePath = "录音文件path"
        obj=Asr()
        ret=obj.spr(filePath)
        print(ret)
    
    展开全文
  • python实现百度语音识别api发布时间:2020-09-06 13:52:14来源:脚本之家阅读:93本文实例为大家分享了python实现百度语音识别的具体代码,供大家参考,具体内容如下详细百度语音识别api文档先下载python用SDK,可以...

    python实现百度语音识别api

    发布时间:2020-09-06 13:52:14

    来源:脚本之家

    阅读:93

    本文实例为大家分享了python实现百度语音识别的具体代码,供大家参考,具体内容如下

    详细百度语音识别api文档

    先下载python用SDK,可以用python setup.py install安装

    # 引入Speech SDK

    from aip import AipSpeech

    # 定义常量

    APP_ID = '你的 App ID'

    API_KEY = '你的 API Key'

    SECRET_KEY = '你的 Secret Key'

    # 初始化AipSpeech对象

    aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

    在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

    开始识别

    注意:

    请求说明:

    1. 原始语音的录音格式目前只支持评测 8k/16k 采样率 16bit 位深的单声道语音

    2. 压缩格式支持:pcm(不压缩)、wav、amr

    3. 系统支持语言种类:中文(zh)、粤语(ct)、英文(en)。

    # 读取文件

    def get_file_content(filePath):

    with open(filePath, 'rb') as fp:

    return fp.read()

    # 识别本地文件

    aipSpeech.asr(get_file_content('audio.pcm'), 'pcm', 16000, {

    'lan': 'zh',

    })

    # 从URL获取文件识别

    aipSpeech.asr('', 'pcm', 16000, {

    'url': 'http://121.40.195.233/res/16k_test.pcm',

    'callback': 'http://xxx.com/receive',

    })

    返回结果:

    // 成功返回

    {

    "err_no": 0,

    "err_msg": "success.",

    "corpus_no": "15984125203285346378",

    "sn": "481D633F-73BA-726F-49EF-8659ACCC2F3D",

    "result": ["北京天气"]

    }

    // 失败返回

    {

    "err_no": 2000,

    "err_msg": "data empty.",

    "sn": null

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

    展开全文
  • 主要为大家详细介绍了python调用百度语音识别实现大音频文件语音识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python实现语音识别(基于百度语音识别

    万次阅读 多人点赞 2018-12-26 22:45:35
    我是一名16级电子信息工程的学生,这是第一次发博客,...最近在自学Python def LuYin(Time,filename): CHUNK = 1024 #wav文件是由若干个CHUNK组成的,CHUNK我们就理解成数据包或者数据片段。 FORMAT = pyaudio.p...

    我是一名2016级电子信息工程的学生,这是第一次发博客,因为经常在这里查资料 ,自己也应该贡献一点经验吧,也可以当是记录自己学习的过程吧。

    最近在自学python,然后18年9月份正好python加入计算机二级,再然后我趁这个机会就混过了。

    百度了一下语音识别,有很许多厂商提供语音识别服务,比如:阿里云、百度AI平台、腾讯云、讯飞AI…

    大家可以尝试一下其他的免费平台,我这里选择的是百度语音识别,当然需要注册一个百度云平台的账号,附上网址点击直达

    支持的语音格式

    原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。
    我这里采用的是采样率为16KHz、单声道、wav格式的录音参数。

    附上录音的源代码
    这里需要pyaudio和wave库
    LuYin(5, ‘test.wav’)表示录音5秒,文件名为test.wav

    import pyaudio
    import wave
    def LuYin(Time,filename):
        CHUNK = 1024              #wav文件是由若干个CHUNK组成的,CHUNK我们就理解成数据包或者数据片段。
        FORMAT = pyaudio.paInt16  #这个参数后面写的pyaudio.paInt16表示我们使用量化位数 16位来进行录音。
        CHANNELS = 1              #代表的是声道,这里使用的单声道。
        RATE = 16000              # 采样率16k
        RECORD_SECONDS = Time     #采样时间
        WAVE_OUTPUT_FILENAME = filename   #输出文件名
    
        p = pyaudio.PyAudio()
    
        stream = p.open(format=FORMAT,
                        channels=CHANNELS,
                        rate=RATE,
                        input=True,
                        frames_per_buffer=CHUNK)
    
        print("* 录音开始")
    
        frames = []
    
        for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
            data = stream.read(CHUNK)
            frames.append(data)
    
        print("* 录音结束")
    
        stream.stop_stream()
        stream.close()
        p.terminate()
    
        wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
        wf.setnchannels(CHANNELS)
        wf.setsampwidth(p.get_sample_size(FORMAT))
        wf.setframerate(RATE)
        wf.writeframes(b''.join(frames))
        wf.close()
    

    注意事项

    如果需要使用实时识别、长语音、唤醒词、语义解析等其它语音功能,请使用Android或者iOS SDK 或 Linux C++ SDK 等。

    请严格按照文档里描述的参数进行开发,特别请关注原始录音参数以及语音压缩格式的建议,否则会影响识别率,进而影响到产品的用户体验。

    目前系统支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。(摘自官方文档)

    获取tokent

    tokent(鉴权认证机制)相当于是自己的身份,有个这个合格的身份平台才会给你提供服务。
    可以把tokent获取出来直接使用,不用每一次都获取,但是这个tokent隔一段时间会失效,我感觉是一个月左右/笑哭

    import requests
    import json
    def Gettokent():
        baidu_server = "https://openapi.baidu.com/oauth/2.0/token?"
        grant_type = "client_credentials"
        #API Key
        client_id = "你的API Key"
        #Secret Key
        client_secret = "你的Secret Key"
    
        #拼url
        url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(client_id, client_secret)
        #print(url)
        #获取token
        res = requests.post(url)
        #print(res.text)
        token = json.loads(res.text)["access_token"]
        print(token)
    

    上传识别

    后两项参数为非必须(摘自官方文档)
    主要参数

    dev_pid 参数列表(摘自官方文档)
    dev_pid 参数列表

    语音识别 返回数据参数详情(摘自官方文档)
    在这里插入图片描述

    返回样例(摘自官方文档)
    在这里插入图片描述

    错误码解释(摘自官方文档)
    错误码解释

    直接附上程序
    参数为本地文件的地址
    附一个示例音频文件16k.wav

    import pyaudio
    import wave
    import requests
    import json
    import base64
    import os
    def BaiduYuYin(fileurl):
        try:
            RATE = "16000"                  #采样率16KHz
            FORMAT = "wav"                  #wav格式
            CUID = "wate_play"
            DEV_PID = "1536"                #无标点普通话
            token = '你的token'
    
            # 以字节格式读取文件之后进行编码
            with open(fileurl, "rb") as f:
                speech = base64.b64encode(f.read()).decode('utf8')
    
            size = os.path.getsize(fileurl)
            headers = {'Content-Type': 'application/json'}
            url = "https://vop.baidu.com/server_api"
            data = {
                "format": FORMAT,
                "rate": RATE,
                "dev_pid": DEV_PID,
                "speech": speech,
                "cuid": CUID,
                "len": size,
                "channel": 1,
                "token": token,
            }
            req = requests.post(url, json.dumps(data), headers)
            result = json.loads(req.text)
            return result["result"][0][:-1]
        except:
            return '识别不清'
    

    第一次写博客,希望大家多多指正,有什么问题请留言,一定及时回复。

    展开全文
  • 主要介绍了python调用百度语音识别api,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了python实现百度语音识别api,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 为大家详细主要介绍了python百度语音识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python百度语音识别与google语音识别测试
  • 主要为大家详细介绍了python语音识别实践之百度语音API,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python 实时语音识别

    千次阅读 2019-08-01 11:32:20
    Python 实时语音识别语音识别语音识别API语音识别步骤效果展示代码下载 最近自己想接触下语音识别,经过一番了解和摸索,实现了对语音识别API的简单调用,正好写文章记录下。目前搜到的帖子里,有现成的调用百度语音...
  • 语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字。应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。一、功能概述实现将语音转换为文字,...
  • python实现录音功能并保存为.wav类型文件,然后通过调用百度语音识别Rest Api服务识别录音并输出。
  • 百度语音识别API ,python语言用,百度语音识别API ,python语言用,百度语音识别API ,python语言用,百度语音识别API ,python语言用,
  • 本文实例为大家分享了python实现百度语音识别的具体代码,供大家参考,具体内容如下先下载python用SDK,可以用python setup.py install安装# 引入Speech SDKfrom aip import AipSpeech# 定义常量APP_ID = '你的 App ...
  • 主要介绍了使用Python百度语音识别生成视频字幕,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python百度AI语音识别——文字转语音

    千次阅读 2020-01-09 20:13:34
    需要有一个百度账号,然后再创建一个语音合成的应用,参照官方python调用百度语音合成api接口详细文档(可参照我另一篇博客:Python实现简单截图识别获取文字信息 这里不再详细说明) 创建一个百度AI语音识别应用...
  • 百度语音识别 python

    2019-12-09 17:42:10
    我们用到是百度语音识别,因为不掏钱哈哈!首先去百度官网去创建你的 APPID AK SK 这个网上很多大家没创建的自己看下 目前本SDK的功能同REST API,需要联网调用http接口, 具体功能见REST API 文档, REST API 仅支持...
  • 原标题:Python基于百度接口的语音识别1. 主要模块介绍1) 使用pyaudio 模块来调用麦克风录制音频2) 使用百度提供的密钥获取access_token3) 使用百度语音识别接口,识别语音2.pyaudio模块的安装pip install pyaudio3...
  • 录音上传百度识别,并返回结果文字输出 继续等待,周围声音是否超过2000,没有就等待。 点用电脑API语音交互 代码如下 # -*- coding: utf-8 -*- # 树莓派 from pyaudio import PyAudio, paInt16 import numpy as...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,550
精华内容 2,620
关键字:

python百度语音识别

python 订阅