讯飞云 API 语音听写 python3 调用例程
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import requests
import time
import gzip
import urllib
import json
import hashlib
import base64
def audio_dictation():
"""
讯飞语音听写 API 调用例程
注意:使用前需要在讯飞云控制台中的IP白名单中加入本机IP!
参考:讯飞云官方 API 文档 https://doc.xfyun.cn/rest_api/语音听写.html
"""
# 读取 APPID:
with open('./appid', mode='r', encoding='ASCII') as appid_file:
x_appid = appid_file.read()
# 读取APIKey:
with open('./apikey', mode='r', encoding='ASCII') as apikey_file:
api_key = apikey_file.read()
# API URL:
url = 'http://api.xfyun.cn/v1/service/v1/iat'
# 读取音频文件内容 (将 `zhngjb_clip.wav` 替换成需要上传的音频文件):
with open('./zhngjb_clip.wav', mode='rb') as audio_file:
file_content = audio_file.read()
# 对音频文件进行 base64 音频编码:
base64_audio = base64.b64encode(file_content)
body = urllib.parse.urlencode({'audio': base64_audio})
# 采样率 16k,编码格式 未压缩:
param = {"engine_type": "sms16k", "aue": "raw"}
# 构建 header:
x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode())
x_time = str(int(int(round(time.time() * 1000)) / 1000))
x_checksum = hashlib.md5(api_key.encode() + str(x_time).encode() + x_param).hexdigest()
x_header = {'X-Appid': x_appid,
'X-CurTime': x_time,
'X-Param': x_param,
'X-CheckSum': x_checksum}
req_header = {'Content-Type': 'application/x-www-form-urlencoded',
'charset': 'utf-8'}
headers = {**req_header, **x_header}
# 发送请求:
start = time.time()
response = requests.post(url, headers=headers, data=body)
duration = time.time() - start
with open('result', mode='w', encoding='utf-8') as result_file:
print(f'Request sent. Duration: {duration}s\n'
f'status code = {response.status_code}\n'
f'headers = {response.headers}\n'
f'content = {response.content.decode("utf-8")}', file=result_file)
if __name__ == '__main__':
audio_dictation()
讯飞云 API 语音听写 python3 调用例程的更多相关文章
- Python3调用Hadoop的API
前言: 上一篇文章 我学习使用pandas进行简单的数据分析,但是各位...... Pandas处理.分析不了TB级别数据的大数据,于是再看看Hadoop. 另附上人心不足蛇吞象 对故事一的感悟: ...
- Android集成科大讯飞SDK语音听写及语音合成功能实现
前言 现在软件设计越来越人性化.智能化.一些常见的输入都慢慢向语音听写方向发展,一些常见的消息提示都向语音播报发展.所以语音合成和语音听写是手机软件开发必不可少的功能.目前国内这方面做的比较好的应该是 ...
- C# 实现语音听写
本文系原创,禁止转载. 分享如何使用c#对接科大讯飞语音听写服务,简单高效地实现语音听写. 实现语音听写主要分为录音和语音识别两部分:录音是指获取设备声卡端口的音频数据并将之保存为音频文件,语音识别就 ...
- Android 讯飞语音听写SDK快速接入(附空指针解决和修改对话框文字方法)
1.账号准备工作 首先要有一个讯飞的账号啦,为后面申请APPID.APPKey等东西做准备.顺带一提:讯飞对不同认证类型用户开 放的SDK的使用次数是有不同的,详情如下图. 账号申请完成后,需要去你自 ...
- Android讯飞语音云语音听写学习
讯飞语音云语音听写学习 这几天两个舍友都买了iPhone 6S,玩起了"Hey, Siri",我依旧对我的Nexus 5喊着"OK,Google" ...
- 腾讯QQAndroid API调用实例(QQ分享无需登录)
腾讯QQAndroid API调用实例(QQ分享无需登录) 主要分为两个步骤: 配置Androidmanifest.xml 修改activity里边代码 具体修改如下: 1.Activity代 ...
- 腾讯地图 API 调用入门
本文仅为腾讯地图 API 调用入门,如需进阶学习,请在腾讯位置服务网站上进行学习. 登陆网址 https://lbs.qq.com/ 点击右上角的登陆按钮,需要进行注册按照流程进行就好. 完成之后,选 ...
- 微信小程序wx.getLocation()获取经纬度及JavaScript SDK调用腾讯地图API获取某一类地址
简介 腾讯位置服务为微信小程序提供了基础的标点能力.线和圆的绘制接口等地图组件和位置展示.地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品. 在此基础上,腾讯位置服务 ...
- .NET调用腾讯云API实例
最近项目有用到腾讯云的身份识别接口,话不多说,直接上代码: private void IDCardVerification(HttpContext context) { string imgStr = ...
随机推荐
- 打印iframe某区域
<a href="#" onClick="parent.iframe名字.focus();window.print();">打印</a>
- Python 学习笔记(九)Python元组和字典(一)
Python 元组 元组的定义 元组(tuple)是一种Python对象类型,元组也是一种序列 Python中的元组与列表类似,不同之处元组的元素不能修改 元组使用小括号,列表使用方括号 元组的创建 ...
- python3带tkinter窗口的ftp服务器,并使用pyinstaller打包成exe
python带tkinter窗口的ftp服务器,使用python3编写,打包使用pyinstaller,命令 pyinstaller -F .\ftpserver.py 代码也可在我的github上下 ...
- Window系统Oracle 安装
一:安装Oracle 数据库软件 1.先去官网下载所需文件:http://www.oracle.com/technetwork/database/enterprise-edition/download ...
- windows用交互式命令执行python程序
1.进入cmd命令 windows+r2.进入盘符,eg:E:3.使用dir命令查看当前文件夹下的所有目录4.使用绝对路径或者相对路径和cd命令直接进入想要到达的文件夹目录(或者使用cd命令一步一步达 ...
- [ZJOI2009]假期的宿舍(二分图匹配)
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...
- mybatis使用*号查询数据丢失问题
使用*号的SQL语句:select * from 表名 在开发过程中可能你会发现使用mybatis框架爱作为持久层时,写的SQL语句在工具里面查询数据是可以查到想要的数据的,但是在项目中会出现数据丢失 ...
- 分享一个hybrid框架ionic
ionic 是一个 HTML5 应用程序开发框架. 可以使用 HTML.CSS 和 Javascript 构建接近原生体验的移动应用程序.具有速度快,界面现代化.美观等特点.下面一起看一下如何使用 安 ...
- Struts2+Datagrid表格显示(可显示多表内容)
概述 最近学到EasyUI的Datagrid数据网格,然后就做了一个小例子,中间层利用Struts2来完成,DAO层用的是Hibernate. 数据库 数据库涉及到stuednt(name,noid, ...
- hadoop学习笔记——zookeeper平台搭建
zookeeper是一个自动管理分布式集群的一个工具,以实现集群的高可用. 比如集群中的一个机器挂掉了,没有zookeeper的话就得考虑挂一个机器对剩下集群工作的影响,而有了zookeeper,它就 ...