IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 调用baidu aip -> 正文阅读

[人工智能]调用baidu aip

使用百度API实现语音转文字_住在明天的春天的博客-CSDN博客_语音转文字api

1.在百度云创建一个语音产品
百度云
在->产品->人工智能->语音技术(选择任何一个创建一个功能包)
也可参考百度开发者教程
创建完成之后你将在你的全局,产品服务中看到自己的语音技术
其中包括

应用名称
AppID
API Key
Secret Key
还有创建时间·····
其中AppId、API Key、Secret Key都很关键这是,在后面接入百度API的凭证,我将在后面标注出来。
2.参考百度官方文档
1)语音转文字(即语音识别)的功能实现
首先,语音识别对音频格式及时长有一定要求,可使用开源的音频格式转换及VAD切分工具。便于进行音频处理。拼音相似度工具可以通过比较拼音相似度,解决同音字问题。
目前,SDK调用使用http接口,需要上传完整文件。根据接口内容:

支持的语音格式
原始 PCM 的录音参数必须符合 16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)
支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。
1、安装语音识别 Python SDK
如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。

2、使用百度接口:
向远程服务上传整段语音进行识别

#文档示例代码:
# 读取文件
def get_file_content(filePath):
? ? with open(filePath, 'rb') as fp:
? ? ? ? return fp.read()

# 识别本地文件
client.asr(get_file_content('audio.pcm'), 'pcm', 16000, {
? ? 'dev_pid': 1536,
})

10
参考文档参数:
speech Buffer 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写
format String 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件
rate int 采样率,16000,固定值
cuid String 用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内
dev_pid Int 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
dev_pid参数列表
dev_pid?? ?语言?? ?模型?? ?是否有标点?? ?备注
1536?? ?普通话(支持简单的英文识别)?? ?搜索模型?? ?无标点?? ?支持自定义词库
1537?? ?普通话(纯中文识别)?? ?输入法模型?? ?有标点?? ?支持自定义词库
1737?? ?英语?? ??? ?无标点?? ?不支持自定义词库
1637?? ?粤语?? ??? ?有标点?? ?不支持自定义词库
1837?? ?四川话?? ??? ?有标点?? ?不支持自定义词库
1936?? ?普通话远场?? ?远场模型?? ?有标点?? ?不支持
成功返回样例:

{"corpus_no":"6798493061260544840","err_msg":"success.",
"err_no":0,
"result":["百度是瓜皮。"],"sn":"666502245331582897515"}
1
2
3
错误信息参考:

错误码?? ?用户输入/服务端?? ?含义?? ?一般解决方法
3300?? ?用户输入错误?? ?输入参数不正确?? ?请仔细核对文档及参照demo,核对输入参数
3301?? ?用户输入错误?? ?音频质量过差?? ?请上传清晰的音频
3302?? ?用户输入错误?? ?鉴权失败?? ?token字段校验失败。请使用正确的API_KEY 和 SECRET_KEY生成。或QPS、调用量超出限额。或音频采样率不正确(可尝试更换为16k采样率)。
3303?? ?服务端问题?? ?语音服务器后端问题?? ?请将api返回结果反馈至论坛或者QQ群
3304?? ?用户请求超限?? ?用户的请求QPS超限?? ?请降低识别api请求频率 (qps以appId计算,移动端如果共用则累计)
3305?? ?用户请求超限?? ?用户的日pv(日请求量)超限?? ?请“申请提高配额”,如果暂未通过,请降低日请求量
3307?? ?服务端问题?? ?语音服务器后端识别出错问题?? ?目前请确保16000的采样率音频时长低于30s。如果仍有问题,请将api返回结果反馈至论坛或者QQ群
3308?? ?用户输入错误?? ?音频过长?? ?音频时长不超过60s,请将音频时长截取为60s以下
3309?? ?用户输入错误?? ?音频数据问题?? ?服务端无法将音频转为pcm格式,可能是长度问题,音频格式问题等。 请将输入的音频时长截取为60s以下,并核对下音频的编码,是否是16K, 16bits,单声道。
3310?? ?用户输入错误?? ?输入的音频文件过大?? ?语音文件共有3种输入方式: json 里的speech 参数(base64后); 直接post 二进制数据,及callback参数里url。 分别对应三种情况:json超过10M;直接post的语音文件超过10M;callback里回调url的音频文件超过10M
3311?? ?用户输入错误?? ?采样率rate参数不在选项里?? ?目前rate参数仅提供16000,填写4000即会有此错误
3312?? ?用户输入错误?? ?音频格式format参数不在选项里?? ?目前格式仅仅支持pcm,wav或amr,如填写mp3即会有此错误
一般问题均在此表格里。
下面贴出代码已经我的测试结果:

# coding=utf-8

import sys
import json
import base64
import time

IS_PY3 = sys.version_info.major == 3

if IS_PY3:
? ? from urllib.request import urlopen
? ? from urllib.request import Request
? ? from urllib.error import URLError
? ? from urllib.parse import urlencode
? ? timer = time.perf_counter
else:
? ? from urllib2 import urlopen
? ? from urllib2 import Request
? ? from urllib2 import URLError
? ? from urllib import urlencode
? ? if sys.platform == "win32":
? ? ? ? timer = time.clock
? ? else:
? ? ? ? # On most other platforms the best timer is time.time()
? ? ? ? timer = time.time

API_KEY = 'Z98pRtfNVQOGheA77PdbqSli'
SECRET_KEY = 'DMKRQo8uTuSbhtb5gamaM4bMZGNrSQGG'

# 需要识别的文件
AUDIO_FILE = 'baidu.pcm' ?# 只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式
# 文件格式
FORMAT = AUDIO_FILE[-3:] ?# 文件后缀只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式

CUID = '123456PYTHON'
# 采样率
RATE = 16000 ?# 固定值

# 普通版

DEV_PID = 1537 ?# 1537 表示识别普通话,使用输入法模型。1536表示识别普通话,使用搜索模型。根据文档填写PID,选择语言及识别模型
ASR_URL = 'http://vop.baidu.com/server_api'
SCOPE = 'audio_voice_assistant_get' ?# 有此scope表示有asr能力,没有请在网页里勾选,非常旧的应用可能没有

#测试自训练平台需要打开以下信息, 自训练平台模型上线后,您会看见 第二步:“”获取专属模型参数pid:8001,modelid:1234”,按照这个信息获取 dev_pid=8001,lm_id=1234
# DEV_PID = 8001 ; ??
# LM_ID = 1234 ;

# 极速版 打开注释的话请填写自己申请的appkey appSecret ,并在网页中开通极速版(开通后可能会收费)

# DEV_PID = 80001
# ASR_URL = 'http://vop.baidu.com/pro_api'
# SCOPE = 'brain_enhanced_asr' ?# 有此scope表示有极速版能力,没有请在网页里开通极速版

# 忽略scope检查,非常旧的应用可能没有
# SCOPE = False

class DemoError(Exception):
? ? pass


""" ?TOKEN start """

TOKEN_URL = 'http://openapi.baidu.com/oauth/2.0/token'


def fetch_token():
? ? params = {'grant_type': 'client_credentials',
? ? ? ? ? ? ? 'client_id': API_KEY,
? ? ? ? ? ? ? 'client_secret': SECRET_KEY}
? ? post_data = urlencode(params)
? ? if (IS_PY3):
? ? ? ? post_data = post_data.encode( 'utf-8')
? ? req = Request(TOKEN_URL, post_data)
? ? try:
? ? ? ? f = urlopen(req)
? ? ? ? result_str = f.read()
? ? except URLError as err:
? ? ? ? print('token http response http code : ' + str(err.code))
? ? ? ? result_str = err.read()
? ? if (IS_PY3):
? ? ? ? result_str = ?result_str.decode()

? ? print(result_str)
? ? result = json.loads(result_str)
? ? print(result)
? ? if ('access_token' in result.keys() and 'scope' in result.keys()):
? ? ? ? print(SCOPE)
? ? ? ? if SCOPE and (not SCOPE in result['scope'].split(' ')): ?# SCOPE = False 忽略检查
? ? ? ? ? ? raise DemoError('scope is not correct')
? ? ? ? print('SUCCESS WITH TOKEN: %s ?EXPIRES IN SECONDS: %s' % (result['access_token'], result['expires_in']))
? ? ? ? return result['access_token']
? ? else:
? ? ? ? raise DemoError('MAYBE API_KEY or SECRET_KEY not correct: access_token or scope not found in token response')

""" ?TOKEN end """

if __name__ == '__main__':
? ? token = fetch_token()

? ? speech_data = []
? ? with open(AUDIO_FILE, 'rb') as speech_file:
? ? ? ? speech_data = speech_file.read()

? ? length = len(speech_data)
? ? if length == 0:
? ? ? ? raise DemoError('file %s length read 0 bytes' % AUDIO_FILE)
? ? speech = base64.b64encode(speech_data)
? ? if (IS_PY3):
? ? ? ? speech = str(speech, 'utf-8')
? ? params = {'dev_pid': DEV_PID,
? ? ? ? ? ? ?#"lm_id" : LM_ID, ? ?#测试自训练平台开启此项
? ? ? ? ? ? ? 'format': FORMAT,
? ? ? ? ? ? ? 'rate': RATE,
? ? ? ? ? ? ? 'token': token,
? ? ? ? ? ? ? 'cuid': CUID,
? ? ? ? ? ? ? 'channel': 1,
? ? ? ? ? ? ? 'speech': speech,
? ? ? ? ? ? ? 'len': length
? ? ? ? ? ? ? }
? ? post_data = json.dumps(params, sort_keys=False)
? ? # print post_data
? ? req = Request(ASR_URL, post_data.encode('utf-8'))
? ? req.add_header('Content-Type', 'application/json')
? ? try:
? ? ? ? begin = timer()
? ? ? ? f = urlopen(req)
? ? ? ? result_str = f.read()
? ? ? ? print ("Request time cost %f" % (timer() - begin))
? ? except URLError as err:
? ? ? ? print('asr http response http code : ' + str(err.code))
? ? ? ? result_str = err.read()

? ? if (IS_PY3):
? ? ? ? result_str = str(result_str, 'utf-8')
? ? print(result_str)
? ? with open("result.txt","w") as of:
? ? ? ? of.write(result_str)
1
2
3
137
138
输出:

{"access_token":"24.ffc8666eb9b9ed1f831f145674c84faa.2592000.1585487697.282335-17692619","session_key":"9mzdXRJMRXk2UGrRPfHouFivZjF9k3jZeeV1UQgxHVgF4LJMNALSRd47wm5rIqFiV4cm7Se8QQtwa14APh8FHjSdTtIlGw==","scope":"audio_voice_assistant_get brain_enhanced_asr audio_tts_post public brain_ocr_general_basic brain_all_scope picchain_test_picchain_api_scope?
brain_nlp_emotion wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope vis-ocr_\u865a\u62df\u4eba\u7269\u52a9\u7406 idl-video_\u865a\u62df\u4eba\u7269\u52a9\u7406","refresh_token":"25.64693b95dc93605948c806dba37e0352.315360000.1898255697.282335-17692619","session_secret":"07709d0831bf5be4a872a695e2b947f1","expires_in":2592000}

{'access_token': '24.ffc8666eb9b9ed1f831f145674c84faa.2592000.1585487697.282335-17692619', 'session_key': '9mzdXRJMRXk2UGrRPfHouFivZjF9k3jZeeV1UQgxHVgF4LJMNALSRd47wm5rIqFiV4cm7Se8QQtwa14APh8FHjSdTtIlGw==', 'scope': 'audio_voice_assistant_get brain_enhanced_asr audio_tts_post public brain_ocr_general_basic brain_all_scope picchain_test_picchain_api_scope brain_nlp_emotion wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian?
ocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理', 'refresh_token': '25.64693b95dc93605948c806dba37e0352.315360000.1898255697.282335-17692619', 'session_secret': '07709d0831bf5be4a872a695e2b947f1', 'expires_in': 2592000}
audio_voice_assistant_get
SUCCESS WITH TOKEN: 24.ffc8666eb9b9ed1f831f145674c84faa.2592000.1585487697.282335-17692619 ?EXPIRES IN SECONDS: 2592000
Request time cost 2.540582
{"err_msg":"speech quality error.","err_no":3301,"sn":"470283300881582895698"}

PS D:\learn Java\pyday\API\API\语音识别> python baidushibie.py
{"access_token":"24.cb226321d87cd64da657bd1468e81951.2592000.1585489514.282335-17692619","session_key":"9mzdWBIklEgpIJj0BuuHGod5VXLJr4CDLIGupFzOvb\/znpW6oOHCjSlGx9i4JVWo+OjdIiF1icrbhTLDJ08AcHljft4f1g==","scope":"audio_voice_assistant_get brain_enhanced_asr audio_tts_post public brain_ocr_general_basic brain_all_scope picchain_test_picchain_api_scope brain_nlp_emotion wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope vis-ocr_\u865a\u62df\u4eba\u7269\u52a9\u7406 idl-video_\u865a\u62df\u4eba\u7269\u52a9\u7406","refresh_token":"25.25ba3b367690eec58c9d79507de4a615.315360000.1898257514.282335-17692619","session_secret":"3f2930ef60146626a1bd70cb87cbfd8c","expires_in":2592000}

{'access_token': '24.cb226321d87cd64da657bd1468e81951.2592000.1585489514.282335-17692619', 'session_key': '9mzdWBIklEgpIJj0BuuHGod5VXLJr4CDLIGupFzOvb/znpW6oOHCjSlGx9i4JVWo+OjdIiF1icrbhTLDJ08AcHljft4f1g==', 'scope': 'audio_voice_assistant_get brain_enhanced_asr audio_tts_post public brain_ocr_general_basic brain_all_scope picchain_test_picchain_api_scope brain_nlp_emotion wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian?
ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理', 'refresh_token': '25.25ba3b367690eec58c9d79507de4a615.315360000.1898257514.282335-17692619', 'session_secret': '3f2930ef60146626a1bd70cb87cbfd8c', 'expires_in': 2592000}
audio_voice_assistant_get
SUCCESS WITH TOKEN: 24.cb226321d87cd64da657bd1468e81951.2592000.1585489514.282335-17692619 ?EXPIRES IN SECONDS: 2592000
Request time cost 1.507672
{"corpus_no":"6798493061260544840","err_msg":"success.","err_no":0,"result":["百度是瓜皮。"],"sn":"666502245331582897515"}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
显然输出在最后一行。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:50:39  更:2022-04-23 10:51:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:51:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码