目录
- 1. 作者介绍
- 2. 华为云中文语音识别
- 2.1 录音文件识别与获取
- 2.2 限制要求
- 2.3 对象存储服务(OBS)简介
- 3. 实验过程以及结果
- 3.1获得API
- 3.2 代码实现
- 3.3 运行结果
- 参考(可供参考的链接和引用文献)
1. 作者介绍
张楠,女,西安工程大学电子信息学院,2022级研究生
研究方向:图像处理
电子邮件:1049532468@qq.com
路治东,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2063079527@qq.com
2. 华为云中文语音识别
2.1 录音文件识别与获取
由于录音文件识别通常会需要较长的时间,因此识别是异步的,即接口分为创建识别任务和查询任务状态两个接口。创建识别任务接口创建任务完成后返回job_id参数,然后用户通过调用录音文件识别状态查询接口来获得转写状态和结果。
2.2 限制要求
1.音频时长不超过1分钟。
2.支持“华北-北京一”、“华北-北京四”、“华东-上海一”区域。
3.支持pcm16k16bit、pcm8k16bit、ulaw16k8bit、ulaw8k8bit、alaw16k8bit、alaw8k8bit、vox8k4bit、v3_8k4bit、WAV(支持pcm/ulaw/alaw/adpcm编码格式)、MP3、M4A、ogg-speex、ogg-opus、AMR。
4.语音时长不超过5小时,文件大小不超过300M。
2.3 对象存储服务(OBS)简介
对象存储服务(OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
对于图片、语音等多媒体文件支持直接使用华为云OBS服务的数据处理方式,以减少服务使用成本,降低服务的响应时长,提升服务使用的体验。
目前仅支持访问用户个人OBS下的音频的链接,不支持读取其他用户公共读的链接。
3. 实验过程以及结果
3.1获得API
1、注册华为云账号,进行实名认证,开通服务。
2、AK/SK认证,下载文件credentials.csv
登录控制台。
单击页面右上角的用户名,并选择“我的凭证”。进入“我的凭证”页面:
单击“访问秘钥”页签下的“新增访问密钥”。弹出“新增访问密钥”对话框:
输入“登录密码”,如果绑定了手机或者邮箱,还需要获取验证码并进行验证。验证成功后,弹出访问密钥下载对话框。
单击“确定”,并根据提示下载保存访问密钥。
如果已生成过AK/SK,找到原来已下载的AK/SK文件,文件名一般为:credentials.csv。
3、创建“公共读”桶
打开控制台,找到对象存储服务OBS:
在“桶列表”中,找到创建桶,进行创建:
按要求填写,注意:桶策略 选择“公共读写”:
4、上传音频
在OBS“桶列表”页,单击创建的OBS桶:
进入“对象”页面,将音频数据上传至OBS桶中:
5、获取音频URL
单击已上传的数据名称,进入数据详情页:
复制链接,获取数据URL:
6、在API Explorer中调试接口:
本案例中使用pcm16k16bit的录音文件格式,python实现代码如上图所示。
3.2 代码实现
1、提交录音文件识别
#############下载需要的库
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdksis.v1.region.sis_region import SisRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksis.v1 import *
###############导入AK和SK
if __name__ == "__main__":
ak = "<YOUR AK>"
sk = "<YOUR SK>"
credentials = BasicCredentials(ak, sk) \
client = SisClient.new_builder() \
.with_credentials(credentials) \
.with_region(SisRegion.value_of("cn-north-4")) \
.build()
try:
request = PushTranscriberJobsRequest()
configbody = TranscriberConfig(
audio_format="auto",
_property="chinese_16k_media",
add_punc="yes"
)
request.body = PostTranscriberJobs(
data_url="YOUR URL",####获取的音频URL
config=configbody
)
response = client.push_transcriber_jobs(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
生成job_id
2、获取录音文件识别结果
#############下载需要的库
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdksis.v1.region.sis_region import SisRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksis.v1 import *
###############导入AK和SK
if __name__ == "__main__":
ak = "<YOUR AK>"
sk = "<YOUR SK>"
credentials = BasicCredentials(ak, sk) \
client = SisClient.new_builder() \
.with_credentials(credentials) \
.with_region(SisRegion.value_of("cn-north-4")) \
.build()
try:
request = CollectTranscriberJobRequest()
request.job_id = "YOUR JOB_ID" ####上一步获取的job_id
response = client.collect_transcriber_job(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
3.3 运行结果
参考(可供参考的链接和引用文献)
1.华为云提供的示例音频
2.报错参考