• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

调用华为API实现文语音识别

武飞扬头像
ZHW_AI课题组
帮助1

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.报错参考

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfijfhf
系列文章
更多 icon
同类精品
更多 icon
继续加载