手把手使用Python语音识别,进行语音转文字
0. 太长不看系列,直接使用
在1.2官网注册后拿到APISecret和APIKey,直接复制文章2.4demo代码,确定音频为wav格式,采样率为16K,在命令行执行
python single_sentence_recognition.py -client_secret=你的client_secret -client_id=你的client_id -file_path=test.wav
识别结果
使用中有任何问题,欢迎留言提问。
1. Python调用标贝科技语音识别接口,实现语音转文字
1.1 环境准备:
Python 3
1.2 获取权限
标贝科技 https://ai.data-baker.com/#/index
填写邀请码fwwqgs,每日免费调用量还可以翻倍
1.2.1 登录
点击产品地址进行登录,支持短信、密码、微信三种方式登录。
1.2.2 创建新应用
登录后进入【首页概览】,各位开发者可以进行创建多个应用。包括一句话识别、长语音识别、录音文件识别;在线合成、离线合成、长文本合成。
1.2.3 选择服务
进入【已创建的应用】,左侧选择您需调用的AI技术服务,右侧展示对应服务页面概览(您可查询用量、管理套餐、购买服务量、自主获取授权、预警管理)。
1.2.4 获取Key&Secret
通过服务 / 授权管理,获取对应参数,进行开发配置(获取访问令牌token)
拿到Key和Secret就可以正式使用啦!
2. 代码实现
2.1 获取access_token
在拿到Key和Secret后,我们还需要调用授权接口获取access_token,这个access_token有效时长是24小时。
# 获取access_token用于鉴权 def get_access_token(client_secret, client_id): grant_type = "client_credentials" url = "https://openapi.data-baker.com/oauth/2.0/token?grant_type={}&client_secret={}&client_id={}"\ .format(grant_type, client_secret, client_id) try: response = requests.post(url) response.raise_for_status() except Exception as e: print(e) return else: access_token = json.loads(response.text).get('access_token') return access_token
2.2 获取识别文本
拿到access_token后,调用语音识别接口,就可以获得识别后文本
# 获取识别后文本 def get_text(file, headers): url = "https://asr.data-baker.com/asr/api?" response = requests.post(url, data=file, headers=headers) code = json.loads(response.text).get("code") text = json.loads(response.text).get("text") if code != 20000: print(response.text) return text
2.3 配置接口参数
client_secret和client_id:在文章1.2的官网获取,必填
file_path:文件保存路径,必填
audio_format:音频格式,默认wav,根据文件可以自己选填
sample_rate:采样率,默认16000,根据文件可以自己选填
add_pct:是否在静音处添加标点,默认true
# 获取命令行输入参数 def get_args(): parser = argparse.ArgumentParser(description='ASR') parser.add_argument('-client_secret', type=str, required=True) parser.add_argument('-client_id', type=str, required=True) parser.add_argument('-file_path', type=str, required=True) parser.add_argument('--audio_format', type=str, default='wav') parser.add_argument('--sample_rate', type=str, default='16000') parser.add_argument('--add_pct', type=str, default='true') args = parser.parse_args() return args
2.4 完整demo
#!/usr/bin/env python # coding: utf-8 import requests import json import argparse # 获取access_token用于鉴权 def get_access_token(client_secret, client_id): grant_type = "client_credentials" url = "https://openapi.data-baker.com/oauth/2.0/token?grant_type={}&client_secret={}&client_id={}"\ .format(grant_type, client_secret, client_id) try: response = requests.post(url) response.raise_for_status() except Exception as e: print(e) return else: access_token = json.loads(response.text).get('access_token') return access_token # 获取识别后文本 def get_text(file, headers): url = "https://asr.data-baker.com/asr/api?" response = requests.post(url, data=file, headers=headers) code = json.loads(response.text).get("code") text = json.loads(response.text).get("text") if code != 20000: print(response.text) return text # 获取命令行输入参数 def get_args(): parser = argparse.ArgumentParser(description='ASR') parser.add_argument('-client_secret', type=str, required=True) parser.add_argument('-client_id', type=str, required=True) parser.add_argument('-file_path', type=str, required=True) parser.add_argument('--audio_format', type=str, default='wav') parser.add_argument('--sample_rate', type=str, default='16000') parser.add_argument('--add_pct', type=str, default='true') args = parser.parse_args() return args if __name__ == '__main__': args = get_args() # 获取access_token client_secret = args.client_secret client_id = args.client_id access_token = get_access_token(client_secret, client_id) # 读取音频文件 with open(args.file_path, 'rb') as f: file = f.read() # 填写Header信息 audio_format = args.audio_format sample_rate = args.sample_rate add_pct = args.add_pct headers = {'access_token': access_token, 'audio_format': audio_format, 'sample_rate': sample_rate, 'add_pct': add_pct} text = get_text(file, headers) print(text)
2.5 执行
复制所有代码,确定音频为wav格式,采样率为16K,在命令行执行
python single_sentence_recognition.py -client_secret=你的client_secret -client_id=你的client_id -file_path=test.wav
结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术