python3讯飞语音识别

news/2025/2/22 3:06:00/
 
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib.parse, urllib.request
#这是python3,原先py2里的urllib2或者其他都包含在了py3的urllib里了,
# py3里的urllib里的parse和request一定要这么导入,直接import urllib
# 是不行的import time
import json
import hashlib
import base64def main():f = open("myVoiceTest.wav", 'rb')#rb表示以二进制格式只读打开文件file_content = f.read()#file_content 是二进制内容,bytes类型#由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。# 如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes# 以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:# >> > 'ABC'.encode('ascii')# b'ABC'# >> > '中文'.encode('utf-8')# b'\xe4\xb8\xad\xe6\x96\x87'# >> > '中文'.encode('ascii')# Traceback(most# recent# call# last):# File# "<stdin>", line 1, in < module ># UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)base64_audio = base64.b64encode(file_content)#base64.b64encode()参数是bytes类型,返回也是bytes类型body = urllib.parse.urlencode({'audio': base64_audio})url = 'http://api.xfyun.cn/v1/service/v1/iat'api_key = '???' #api key在这里x_appid = '???'  # appid在这里param = {"engine_type": "sms16k", "aue": "raw"}x_time = int(int(round(time.time() * 1000)) / 1000)x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))# 这是3.x的用法,因为3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,# 所以必须先转码为utf-8的bytes# >> print(x_param)# >> b'YWJjcjM0cjM0NHI ='# 结果和我们预想的有点区别,我们只想要获得YWJjcjM0cjM0NHI =,而字符串被b# ''包围了。这时肯定有人说了,用正则取出来就好了。。。别急。b表示# byte的意思,我们只要再将byte转换回去就好了:# >> x_param = str(x_param, 'utf-8')# Python3 字符编码 https://www.cnblogs.com/284628487a/p/5584714.htmlx_checksum_content = api_key + str(x_time) + str(x_param, 'utf-8')x_checksum = hashlib.md5(x_checksum_content.encode('utf-8')).hexdigest()# python3里的hashlib.md5()参数也是要求bytes类型的,x_checksum_content是以Unicode# 编码的,所以需要转成bytes。# 讯飞api说明:# 授权认证,调用接口需要将Appid,CurTime, Param和CheckSum信息放在HTTP请求头中;# 接口统一为UTF-8编码;# 接口支持http和https;# 请求方式为POST。x_header = {'X-Appid': x_appid,'X-CurTime': x_time,'X-Param': x_param,'X-CheckSum': x_checksum}req = urllib.request.Request(url = url, data = body.encode('utf-8'), headers = x_header, method = 'POST')#不要忘记url = ??, data = ??, headers = ??, method = ?? 中的“ = ”,这是python3!!result = urllib.request.urlopen(req)result = result.read().decode('utf-8')#返回的数据需要再以utf-8解码print(result)returnif __name__ == '__main__':main()# {"code":"10105",
#  "data":"",
#  "desc":"illegal access|illegal client_ip: 58.248.139.205",
#  "sid":"zat00051e0e@ch26260e3773f83d3400"}
# 我讯飞后台需要开ip白名单

请求参数:



http://www.ppmy.cn/news/973718.html

相关文章

uniapp - 接入科大讯飞语音评测

欢迎关注微信公众号&#xff1a;FSA全栈行动 &#x1f44b; 一、简介 科大讯飞语音评测可以对字、词、句、篇章等题型进行多维度评分&#xff08;准确度、流畅度、完整度、声韵调型等&#xff09;&#xff0c;支持中文和英文。最新的流式版使用 webSocket 调用接口&#xff0c…

科大讯飞语音接口调用实现语音识别

1. 申请账号及获得AppID等 控制台填写资料 控制台-讯飞开放平台 语音听写的文档及接口说明 语音听写&#xff08;流式版&#xff09;WebAPI 文档 | 讯飞开放平台文档中心 关键信息&#xff1a; 设置参数 业务数据流参数 data 参数名类型必传描述statusint是音频的状态…

Android 讯飞语音识别功能开发

以下代码主要参考博客&#xff1a; Android 科大讯飞语音识别 Android蓝牙串口开发部分请参照博客&#xff1a; Android蓝牙串口开发 讯飞语音官方开发文档&#xff1a; 语音听写 Android SDK 文档 文章目录 前言一、SDK的下载和导入1.SDK的下载2.新建工程3.配置项目a.导包b.权…

讯飞语音 Great!!!

http://www.xfyun.cn/doccenter/awd 开发集成 > Android平台 目录[隐藏] 1 概述2 预备工作3 语音听写4 语音识别5 语音合成6 语义理解7 本地功能集成8 语音评测9 语音唤醒10 声纹识别11 人脸识别12 附录13 常见问题 1 概述 本文档是集成科大讯飞MSC&#xff08;Mobile Speec…

chatgpt 讯飞星火 对比

"ChatGPT"和"讯飞星火"是两个不同的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;由不同的公司开发和提供。以下是它们之间的一些对比&#xff1a;1.开发公司&#xff1a; ChatGPT&#xff1a;由OpenAI开发&#xff0c;是OpenAI旗下的GPT-3模型…

深度剖析数据在内存中的储存

深度剖析数据在内存中的储存 整形在内存的储存大小端浮点型在内存中的存储浮点数在内存中存储规则 整形在内存的储存 #include <stdio.h> int main() {int a 0x11223344; }将整形a赋值为0x11223344 然后监视内存的地址 将地址在内存调试窗口中搜索&#xff0c;可以找到…

机器学习术语解析与应用(二)

文章目录 &#x1f340;目标函数&#xff08;Objective Function&#xff09;&#x1f340;GPU加速&#xff08;GPU Acceleration&#xff09;&#x1f340;迁移学习&#xff08;Transfer Learning&#xff09;&#x1f340;自然语言处理&#xff08;Natural Language Processi…

ChatGPT与情感智能:赋予机器共情能力

摘要&#xff1a; 随着人工智能的迅猛发展&#xff0c;ChatGPT作为一种聊天机器人&#xff0c;具备了与人类进行自然语言对话的能力。然而&#xff0c;ChatGPT目前在情感理解和表达方面仍存在一定的挑战。本文将探讨如何通过情感智能的引入&#xff0c;使ChatGPT具备共情能力&a…