前提条件确保已按照配置Python环境配置完毕,Python SDK仅支持Python3。

确保已存在待识别的音频文件。如果需要请在下载的SDK压缩包中获取示例音频。

初始化Client

表1RasrClient初始化参数参数名称

是否必选

参数类型

描述

ak

String

用户的ak,请参考AK/SK认证。

sk

String

用户的sk,请参考AK/SK认证。

use_aksk

Boolean

使用ak、sk要填写true。

region

String

区域,如:cn-north-4。具体请参考终端节点。

project_id

String

项目ID,同region一一对应,参考获取项目ID。

callback

Object

回调类RasrCallBack,用于监听Websocket连接、响应、断开、错误等。参考代码示例。

config

Object

service_endpoint

String

终端节点,一般使用默认即可。

表2SisConfig数据结构参数名称

是否必选

参数类型

描述

connect_timeout

Integer

连接超时,默认10,单位s。

read_timeout

Integer

读取超时,默认10,单位s。

connect_lost_timeout

Integer

连接失效超时,默认4,单位s。一般不要修改这个参数。

请求参数

请求类为RasrRequest,详见表 RasrRequest数据结构。

表3RasrRequest数据结构参数名称

是否必选

参数类型

描述

audio_format

String

音频格式,支持pcm,alaw,ulaw等,如pcm8k16bit,参见《API参考》中开始识别章节。

model_property

String

属性字符串,language_sampleRate_domain, 如chinese_8k_common,参见《API参考》中开始识别章节。

add_punc

String

表示是否在识别结果中添加标点,取值为yes 、 no,默认no。

digit_norm

String

表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。

vad_head

Integer

头部最大静音时间,[0, 60000],默认10000ms。

vad_tail

Integer

尾部最大静音时间,[0, 3000],默认500ms。

max_seconds

Integer

音频最长持续时间, [0, 60],默认30s。

interim_results

String

是否显示中间结果,yes 或 no,默认no。

vocabulary_id

String

热词表id,若没有则不填。

响应参数

Python SDK响应结果为Json格式,详见表 响应结果数据结构。

表4响应结果数据结构参数名称

是否必选

参数类型

描述

resp_type

String

参数值为RESULT,表示识别结果响应。

trace_id

String

服务内部的令牌,可用于在日志中追溯具体流程。

segments

Array of objects

表5segment 数据结构参数名称

是否必选

参数类型

描述

start_time

Integer

一句的起始时间戳,单位为ms。

end_time

Integer

一句的结束时间戳,单位为ms。

is_final

Boolen

true表示是最终结果, false表示为中间临时结果。

result

Object

调用成功表示识别结果,详见表 result数据结构。

表6result数据结构参数名称

是否必选

参数类型

描述

text

String

识别结果。

score

Float

识别结果的置信度(0-1之间)。此值仅会在最终结果时被赋值,在中间结果时统一置为“0.0”。

代码示例# -*- coding: utf-8 -*-

from huaweicloud_sis.client.rasr_client import RasrClient

from huaweicloud_sis.bean.rasr_request import RasrRequest

from huaweicloud_sis.bean.callback import RasrCallBack

from huaweicloud_sis.bean.sis_config import SisConfig

import json

# 鉴权信息

ak = '' # 用户的ak

sk = '' # 用户的sk

region = '' # region,如cn-north-4

project_id = '' # 同region一一对应

"""

todo 请正确填写音频格式和模型属性字符串

1. 音频格式一定要相匹配.

例如音频是pcm格式,并且采样率为8k,则格式填写pcm8k16bit

如果返回audio_format is invalid 说明该文件格式不支持

2. 音频采样率要与属性字符串的采样率要匹配

例如格式选择pcm16k16bit,属性字符串却选择chinese_8k_common, 则会返回'audio_format' is not match model

"""

# 实时语音转写参数

path = '' # 需要发送音频路径,如D:/test.pcm, 同时sdk也支持byte流发送数据

audio_format = '' # 音频支持格式,如pcm8k16bit

property = '' # 属性字符串,language_sampleRate_domain, 如chinese_8k_common, 采样率要和音频一致

class MyCallback(RasrCallBack):

""" 回调类,用户需要在对应方法中实现自己的逻辑,其中on_response必须重写 """

def on_open(self):

""" websocket连接成功会回调此函数 """

print('websocket connect success')

def on_start(self, message):

"""

websocket 开始识别回调此函数

:param message: 传入信息

:return: -

"""

print('webscoket start to recognize, %s' % message)

def on_response(self, message):

"""

websockert返回响应结果会回调此函数

:param message: json格式

:return: -

"""

print(json.dumps(message, indent=2, ensure_ascii=False))

def on_end(self, message):

"""

websocket 结束识别回调此函数

:param message: 传入信息

:return: -

"""

print('websocket is ended, %s' % message)

def on_close(self):

""" websocket关闭会回调此函数 """

print('websocket is closed')

def on_error(self, error):

"""

websocket出错回调此函数

:param error: 错误信息

:return: -

"""

print('websocket meets error, the error is %s' % error)

def rasr_example():

""" 实时语音转写demo """

# step1 初始化RasrClient, 暂不支持使用代理

my_callback = MyCallback()

config = SisConfig()

# 设置连接超时,默认是10

config.set_connect_timeout(10)

# 设置读取超时, 默认是10

config.set_read_timeout(10)

# 设置connect lost超时,一般在普通并发下,不需要设置此值。默认是4

config.set_connect_lost_timeout(4)

# websocket暂时不支持使用代理

rasr_client = RasrClient(ak=ak, sk=sk, use_aksk=True, region=region, project_id=project_id, callback=my_callback,

config=config)

# step2 构造请求

request = RasrRequest(audio_format, property)

# 所有参数均可不设置,使用默认值

request.set_add_punc('yes') # 设置是否添加标点, yes or no, 默认no

request.set_vad_head(10000) # 设置有效头部, [0, 60000], 默认10000

request.set_vad_tail(500) # 设置有效尾部,[0, 3000], 默认500

request.set_max_seconds(30) # 设置一句话最大长度,[0, 60], 默认30

request.set_interim_results('no') # 设置是否返回中间结果,yes or no,默认no

request.set_digit_norm('no') # 设置是否将语音中数字转写为阿拉伯数字,yes or no,默认yes

# request.set_vocabulary_id('') # 设置热词表id,若不存在则不填写,否则会报错

# step3 选择连接模式

# rasr_client.short_stream_connect(request) # 流式一句话模式

# rasr_client.sentence_stream_connect(request) # 实时语音转写单句模式

rasr_client.continue_stream_connect(request) # 实时语音转写连续模式

# step4 发送音频

rasr_client.send_start()

# 连续模式下,可多次发送音频,发送格式为byte数组

with open(path, 'rb') as f:

data = f.read()

rasr_client.send_audio(data) # 可选byte_len和sleep_time参数,建议使用默认值

rasr_client.send_end()

# step5 关闭客户端,使用完毕后一定要关闭,否则服务端20s内没收到数据会报错并主动断开。

rasr_client.close()

if __name__ == '__main__':

rasr_example()

python实时语音转写_使用实时语音转写_语音交互服务 SIS_SDK参考_Python SDK_华为云...相关推荐

  1. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

  2. 华为云服务怎么弄金卡会员_华为云XR云服务,助力千行百业产业升级

    9月28日上午,第五届华为全联接2020华为云"5G Ready 视频云服务使能行业持续创新"专题演讲上,华为云视频云总监陆振宇发表了<华为云XR云服务,助力千行百业产业升级 ...

  3. 华为云桌面客户端_华为云CloudIDE的前世今生

    在华为开发者大会HDC.Cloud上,华为云发布了基于鲲鹏计算的开发者服务 - CloudIDE服务,为鲲鹏开发者提供了很好的云端开发体验.(延伸阅读:华为云CloudIDE,云时代的精创利器) 体验 ...

  4. 使用react-native-audio进行华为云语音交互服务(实时语音转写)大致流程

    基础前端框架:react-native 语音交互服务:华为云 1.react-native-audio录制音频 华为云支持的音频编码格式如下表: 一共有六种,但是一般用下表的前两种,即不压缩的裸音频格 ...

  5. Unity 讯飞实时语音转写(二)—— 接收转写结果

    目录 Unity 讯飞实时语音转写(一)-- 使用WebSocket连接讯飞语音服务器 Unity 讯飞实时语音转写(二)-- 接收转写结果 Unity 讯飞实时语音转写(三)-- 分析转写结果 正文 ...

  6. python简笔画程序_只用C++和Python,让你的简笔画实时动起来!

    原标题:只用C++和Python,让你的简笔画实时动起来! 大数据文摘出品 作者:刘俊寰 让蒙娜丽莎笑起来对AI来说已经不是什么新鲜事了. 试想,如果在画纸上创作的图像能够实时地生成动画,达芬奇可能会 ...

  7. python简笔画大全_只用C++和Python,让你的简笔画实时动起来!

    原标题:只用C++和Python,让你的简笔画实时动起来! 大数据文摘出品 作者:刘俊寰 让蒙娜丽莎笑起来对AI来说已经不是什么新鲜事了. 试想,如果在画纸上创作的图像能够实时地生成动画,达芬奇可能会 ...

  8. Python黑马头条推荐系统第三天 实时计算和召回业务、推荐业务流实现与ABTest

    实时计算业务 4.1 实时计算业务介绍 学习目标 目标 了解实时计算的业务需求 知道实时计算的作用 应用 无 4.1.1 实时计算业务需求 实时(在线)计算: 解决用户冷启动问题 实时计算能够根据用户 ...

  9. 如何监测mysql主从复制状态_如何实时检测mysql主从状态,并做邮件告警?

    实时检测mysql主从状态,并做邮件告警 需求分析: 当我们做完主从后,主从成功的话,Slave_IO_Running和Slave_SQL_Running两个进程的状态就为yes,但是在做主从同步时也 ...

  10. python分割语音端点检测_python的webrtc库如何实现语音端点检测 科大讯飞输入法PC体验版下载:语音+手写+...

    python的webrtc库如何实现语音端点检测 科大讯飞输入法PC体验版下载:语音+手写+ 2018-03-05 出处:网络 整理:zhishizhan.net 延伸:科大讯飞输入法PC体验版下载: ...

最新文章

  1. CodedStereo:大尺度景深双目视觉的相位掩模学习(CVPR2021)
  2. 风影ASP.NET基础教学 5 验证控件(二) 扩展自己的验证控件
  3. koa中间件mysql写法_koa-mysql(三)
  4. date数据要在前台显示
  5. freemarker的测试结果框架_java必背综合知识点总结(框架篇)
  6. PostgreSQL SSL启用与CA证书生成、配置
  7. 转:ibatis配置简介
  8. 12.51单片机实现电子音乐盒
  9. 数学家是如何做量化交易的
  10. 小程序“圣诞帽”的实现思路
  11. 深入理解计算机系统arch lab
  12. 在京东页面我的那显示寄件服务器,微信上在哪查看京东物流信息
  13. python输入一个三位数输出百位十位个位_python输入一个水仙花数(三位数) 输出百位十位个位实例...
  14. How To JUST DO IT
  15. 计算机一级考试内容有哪些?
  16. WiFi基本概念(十三)射频(一)(EVM)
  17. 分光器尺寸及光损耗计算
  18. RGB 透明度对应值
  19. 读书可以改变命运,知识可以创造奇迹,这放在任何时代都不会过时
  20. python字典创建、使用字典保存中国主要城市和对应邮编_Python字典及相关操作(内含例题)...

热门文章

  1. 爬取了bilibili站644w视频信息之后的故事。
  2. landesk 卸载_landesk怎么卸载,软件卸载不了怎么办
  3. javascript 图片上传并显示
  4. 带串口功能的51最小系统板,可直接烧录STC芯片,简约好用,Micro接口,只需要一根Micro接口的USB线接到电脑就可以下载程序了。
  5. 用摄动法证明fibs的一个公式(继续变形)
  6. 基于RetinaFace+ArcFace的人脸识别测试和验证代码
  7. 同时删除多个 Txt 文本文档空白行
  8. 南大被骂到上热搜!Nature杂志回应南京大学拟花120万发校庆特刊!
  9. DirectX Redistributable 多国语言安装版
  10. C51单片机学习笔记——秒表