最新版本号:1.2.0
1. 客户端RPC调用模块
1.1 asrt_sdk.get_speech_recognizer
获取一个ASRT语音识别服务调用接口类实例对象
- 参数列表
参数 | 类型 | 说明 |
---|---|---|
host |
str | 主机域名或IP |
port |
str | 主机端口号 |
protocol |
str | 网络协议类型 |
其中 protocol
支持以下几种协议:
协议 | 说明 |
---|---|
http | 普通的未加密的http协议 |
https | 基于ssl/tls加密的安全类型http协议 |
grpc | 普通的未加密的grpc协议 |
grpcs | 基于ssl/tls加密的传输安全类型grpc协议 |
1.2 asrt_sdk.HttpSpeechRecognizer
基于http协议的语音识别接口调用类,支持http和https
- 参数列表
成员 | 类型 | 参数 | 返回类型 | 说明 |
---|---|---|---|---|
__init__ |
构造函数 | host :文本类型,指定ASRT语音识别服务主机的域名或IP |
ASRT语音识别类的实例化对象。 | 实例化对象。 |
recognite |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定音频序列数据进行RPC调用的过程,返回识别后的文本 |
recognite_speech |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定音频序列数据进行声学模型RPC调用的过程,返回识别后的拼音序列 |
recognite_language |
成员函数 | sequence_pinyin : 拼音序列列表 |
AsrtApiResponse |
执行对指定拼音序列数据进行语言模型RPC调用的过程,返回最终识别后的文本 |
recognite_long |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定的长语音音频序列数据进行RPC调用的过程,会自动分段,返回分段识别后的识别文本数组 |
recognite_file |
成员函数 | filename : 要语音识别的文件名 |
AsrtApiResponse |
执行对指定音频序列数据进行RPC调用的过程,返回识别后的文本 |
sub_path |
成员属性,str 类型 |
返回或设置http协议API接口资源的子路径,默认为'' |
1.3 asrt_sdk.read_wav_data
读取WAVE格式音频文件数据,可用于后续调用ASRT语音识别接口
- 参数列表
参数 | 类型 | 说明 |
---|---|---|
filename |
str | WAVE格式文件名 |
- 返回值:
WaveData
类型
属性字段 | 类型 | 说明 |
---|---|---|
wav_data : WAVE格式音频样本点二进制数据。 |
二进制序列 | WAVE样本点数据 |
frame_rate : WAVE格式音频采样率。 |
int |
采样率 |
channels : WAVE格式音频通道数。 |
int |
通道数 |
byte_width : WAVE格式音频样本点字节宽度。 |
int |
样本点字节宽度 |
1.4 asrt_sdk.GrpcSpeechRecognizer
基于grpc协议的语音识别接口调用类,支持非安全传输和安全传输方式。
- 参数列表
成员 | 类型 | 参数 | 返回类型 | 说明 |
---|---|---|---|---|
__init__ |
构造函数 | host :文本类型,指定ASRT语音识别服务主机的域名或IP |
ASRT语音识别类的实例化对象。 | 实例化对象。 |
recognite |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定音频序列数据进行RPC调用的过程,返回识别后的文本 |
recognite_speech |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定音频序列数据进行声学模型RPC调用的过程,返回识别后的拼音序列 |
recognite_language |
成员函数 | sequence_pinyin : 拼音序列列表 |
AsrtApiResponse |
执行对指定拼音序列数据进行语言模型RPC调用的过程,返回最终识别后的文本 |
recognite_long |
成员函数 | wav_data : WAVE格式音频样本点二进制数据。frame_rate : WAVE格式音频采样率。 channels : WAVE格式音频通道数。 byte_width : WAVE格式音频样本点字节宽度。 |
AsrtApiResponse |
执行对指定的长语音音频序列数据进行RPC调用的过程,会自动分段,返回分段识别后的识别文本数组 |
recognite_file |
成员函数 | filename : 要语音识别的文件名 |
AsrtApiResponse |
执行对指定音频序列数据进行RPC调用的过程,返回识别后的文本 |
recognite_stream |
成员函数 | wav_data_generator :传入的一个数据生成器 duration :静默周期(单位: 秒),每个音频片段的录制需要等待的时间。若使用录音文件可设为0(秒)。 callback_function : 接收识别文本的回调函数,需要且仅需要一个参数,接收的对象类型为TextResponse , 定义见下。 |
None |
进行流式RPC调用,通过python生成器不断传入wave音频片段,通过回调方式接收识别后的文本 |
protobufTextResponse
类型定义:
message TextResponse {
int32 status_code = 1;
string status_message = 2;
string text_result = 3;
}
1.5 示例代码
1.5.1 HTTP协议接口调用示例
import asrt_sdk
HOST = '127.0.0.1'
PORT = '20001'
PROTOCOL = 'http'
SUB_PATH = ''
speech_recognizer = asrt_sdk.get_speech_recognizer(HOST, PORT, PROTOCOL)
speech_recognizer.sub_path = SUB_PATH
FILENAME = 'A11_0.wav'
result = speech_recognizer.recognite_file(FILENAME)
print(result)
for index in range(0, len(result)):
item = result[index]
print("第", index, "段:", item.result)
wave_data = asrt_sdk.read_wav_datas(FILENAME)
result = speech_recognizer.recognite_speech(wave_data.str_data,
wave_data.sample_rate,
wave_data.channels,
wave_data.byte_width)
print(result)
print(result.result)
result = speech_recognizer.recognite_language(result.result)
print(result)
print(result.result)
AI柠檬提供的测试API配置可将对应处改为:
HOST = 'api.ailemon.net'
PORT = '443'
PROTOCOL = 'https'
SUB_PATH = '/asrt/v2/http'
1.5.2 GRPC协议接口调用示例
import asrt_sdk
HOST = '127.0.0.1'
PORT = '20002'
PROTOCOL = 'grpc'
speech_recognizer = asrt_sdk.get_speech_recognizer(HOST, PORT, PROTOCOL)
FILENAME = 'A11_0.wav'
result = speech_recognizer.recognite_file(FILENAME)
print("wav文件识别结果:", result)
wave_data = asrt_sdk.read_wav_datas(FILENAME)
result = speech_recognizer.recognite_speech(wave_data.str_data,
wave_data.sample_rate,
wave_data.channels,
wave_data.byte_width)
print("wav声学识别响应:", result)
print("wav声学识别结果:", result.result_data)
result = speech_recognizer.recognite_language(result.result_data)
print("语言模型识别响应:", result)
print("语言模型识别结果:", result.text_result)
result = speech_recognizer.recognite(wave_data.str_data,
wave_data.sample_rate,
wave_data.channels,
wave_data.byte_width)
print("wav完整识别响应:", result)
print("wav完整识别结果:", result.text_result)
def make_wav_generator():
for _ in range(2):
yield wave_data.str_data, wave_data.sample_rate, wave_data.channels, wave_data.byte_width
stream_asr_text = ""
stream_buffer_text = ""
def callback_func(ret):
global stream_asr_text
global stream_buffer_text
print("流式识别响应:", ret)
print("流式识别结果:", ret.status_code, ret.text_result)
if ret.status_code == 200000:
stream_asr_text += ret.text_result
stream_buffer_text = ""
elif ret.status_code == 206000:
stream_buffer_text = ret.text_result
else:
print("流式语音识别出错!", ret.status_code, ret.status_message)
print("当前语音识别内容:", stream_asr_text+stream_buffer_text)
speech_recognizer.recognite_stream(make_wav_generator, 1, callback_func)
作者:AI柠檬 创建时间:2022-02-09 19:24
最后编辑:AI柠檬 更新时间:2024-11-06 22:17
最后编辑:AI柠檬 更新时间:2024-11-06 22:17