调用科大讯飞语音识别webapi

本文介绍如何调用科大讯飞的语音识别接口,将本地音频文件转换为文字。通过ffmpeg转码音频为pcm标准格式,利用C#实现API请求,包括设置参数、计算签名等关键步骤。
摘要由CSDN通过智能技术生成

百度和讯飞和其他厂都提供了语音识别的接口,这里使用讯飞的识别将本地手机录的音频文件转成文字

以下注意事项:

1.X_Param 参数开始的时候带了空格导致验证不过,原因是讯飞将字符串做了repelce处理

2.讯飞后台设置白名单IP

3.本地的文件请使用ffmpeg转码成pcm标准格式,

参考:http://ai.baidu.com/docs#/ASR-Tool-convert/top

 

//语音听写
public PostResult<string> Speech(IFormFileCollection fileCollection)
{
#region 上传音频
if (fileCollection.Count == 0) throw new InvalidDataException("没找到需要上传的文件。");
var folder = IO.Directory.GetCurrentDirectory() + "//wwwroot//upload";//先保存到本地,然后云上传
var file = fileCollection[0];
if (!IO.Directory.Exists(folder)) IO.Directory.CreateDirectory(folder);
var filename = file.FileName;
var extension = filename.Substring(filename.LastIndexOf(".")).ToLower(); // 扩展名
var key = filename.Replace(extension, "_") + DateTime.Now.ToString("yyyyMMddHHmmssfff") + extension;
using (IO.FileStream fs = new IO.FileStream(folder + "//" + key, IO.FileMode.Create, IO.FileAccess.ReadWrite))
{
file.CopyTo(fs);
fs.Flush();
} /**/
#endregion

#region 调用接口

//使用ffmpeg音频转码
var path =(folder 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Python调用科大讯飞语音识别API进行语音识别的示例代码: ```python import requests import json import base64 # 设置API请求地址和开发者密钥 url = "http://api.xfyun.cn/v1/service/v1/iat" app_id = "your_app_id" api_key = "your_api_key" # 读取音频文件并进行base64编码 audio_file = "audio.wav" with open(audio_file, "rb") as f: audio_data = f.read() audio_base64 = base64.b64encode(audio_data).decode("utf-8") # 构造API请求参数 param = { "engine_type": "sms16k", # 识别引擎 "aue": "raw", # 音频编码方式 "audio": audio_base64 # base64编码后的音频数据 } param_str = json.dumps(param) # 构造HTTP请求头 time_now = int(time.time()) checksum = hashlib.md5((api_key + str(time_now) + param_str).encode("utf-8")).hexdigest() headers = { "Content-Type": "application/x-www-form-urlencoded; charset=utf-8", "X-Appid": app_id, "X-CurTime": str(time_now), "X-Param": param_str, "X-CheckSum": checksum } # 发送API请求并解析识别结果 response = requests.post(url, headers=headers) if response.status_code == 200: result = json.loads(response.text) if result["code"] == "0": text = result["data"] print(text) else: print("识别失败,错误码:%s,错误信息:%s" % (result["code"], result["desc"])) else: print("请求失败,状态码:%d" % response.status_code) ``` 需要注意的是,该示例代码中使用了Python的requests库发送HTTP请求,并使用了base64对音频文件进行编码。在使用时,需要将代码中的`your_app_id`和`your_api_key`分别替换为自己的应用ID和API密钥。另外,由于科大讯飞语音识别API需要进行签名校验,因此还需要在HTTP请求头中传递相关参数。具体的签名算法和参数格式可以参考科大讯飞的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值