s命令数据包/s命令响应数据包
s 命令数据包和s命令响应数据包是成对的。 当使用 s 命令 通知服务器开始发送语音数据时,服务器会返回 s 命令响应数据包。
如果 s 命令 响应数据包仅为"s"一个字符,则表示成功。随后可以开始通过 p 命令数据包提供语音数据。当所有语音数据发送完成后,需要用e命令数据包通知发送结束,但如果连接仍然保持,则可以再次从s命令数据包开始重新启动。
s 命令数据包
开始发送语音数据。 除了通知开始发送外,还需要发送要使用的语音格式,要使用的语音识别引擎(连接引擎名称)、认证信息(API key)以及其他参数。
格式
类型 TEXT
s <audio_format> <grammar_file_names>
s <audio_format> <grammar_file_names> <key>=<value> ...
s 和各参数块之间的分隔符是半角空格。 以下将详细说明各参数。
<audio_format>
指定要使用的语音格式。此参数是必需的。关于可以指定的格式名称,请参阅开发指南中的关于音频格式。
<grammar_file_names>
指定连接引擎名称。此参数是必需的。
<key>
<key>可以指定以下 key 字符串。 如果<value>中包含空格,请用半角双引号“"”将value括起来。
| <key> | 说明 |
|---|---|
| authorization | authorization设置为 MyPage 上显示的[API key],或使用API Key获取的 API key。此参数是必需的。 |
| profileId | profileId 是在使用用户词典注册用户特定单词时使用的用户特定数据文件(profile)的ID。只有该用户才能指定并使用该 profile 。 profile 存储在用户特定区域,因此不会与其他用户的名称发生冲突。※ profileId 需指定由半角英文字母、数字以及"-"(半角连字符)、"_"(半角下划线)组成的字符串。但是,以"__"(两个半角下划线)开头的字符串被语音识别引擎保留,因此请不要指定以"__"(两个半角下划线)开头的字符串。在 MyPage 的用户词典注册中注册单词时,与 MyPage 连接信息中列出的 serviceId(由 accountId 自动生成)同名的 profile 会自动创建并保存在服务器上。当想使用此 profile 进行语音识别时,请在 profileId 中指定 "在 serviceId 前加半角冒号":"的字符串" 。(例)如果 serviceId 为"aiueo12345",则 profileId 的值为":aiueo12345"。用户词典 注册用户词典中的单词最简单的方法是使用 MyPage 的用户词典注册画面。此外,还可以使用用户词典注册API或每次请求时设置的方法。有关各方法的详细信息,请参阅用户词典注册方法。 |
| profileWords | 在profileWords参数中设置要作为单词注册或单词强调的单词信息。对于 Hybrid 引擎的单词注册,格式为"显示<半角空格>读音",对于 End to End 引擎的单词强调,格式为"显示<半角空格>替代显示<半角空格>单词强调度"。多个注册时用“|”分隔。发送时请用“"”括起整个profileWords参数的值。 ※如果在单词注册时指定类名,请使用"显示<半角空格>读音<半角空格>类名"的格式。单词强调的替代显示和单词强调度可以省略,但如果省略替代显示,请使用"显示<半角空格><半角空格>单词强调度"的格式。 |
| keepFillerToken | 如果想在识别结果字符串中包含发话中的填充词(如"あー"或"えー"等),请按以下方式指定: keepFillerToken=1 填充词有各种各样,但所有填充词的显示前后都用半角%包围。(例)"%あー%""%えー%""%おー%""%えーっと%" 如果没有指定 keepFillerToken=1,填充词将从识别结果字符串中删除。 |
| segmenterProperties | 这是发言检测的参数。可以控制说话人区分的启用/禁用,并设置调整结果的参数。可以用空格分隔设置多个参数。 segmenterProperties="key1=value1 key2=value2..." 可以设置的参数如下: useDiarizer 设置为1时启用说话人分类。 ・可指定的值: 0 或 1 ・默认值: 0 diarizerAlpha 这是控制新说话人出现容易程度的参数。指定较大的值会使新说话人更容易出现,指定较小的值会使新说话人更难出现。只在 useDiarizer=1 时有效。・可指定的值: 0以上 ・参考范围: 1e-100~1e50 ・默认值: 1 diarizerTransitionBias 这是控制说话人切换容易程度的参数。指定较大的值会使说话人更容易切换,指定较小的值会使说话人更难切换。只在 useDiarizer=1 时有效。・可指定的值: 0以上1以下 ・参考范围: 1e-150~1e-10 ・默认值: 1e-40 (8k的情况为1e-20) |
使用在 MyPage 注册的单词时的 s 命令
s MSB16K -a-general profileId=:<serviceId> authorization=XXXXXXXXXXXXXX
为本次会话临时注册单词时的s命令
s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX
上面的例子中,没有指定 profileId,而是注册了"AMI あみ|AmiVoice あみぼいす"(2个单词)。接下来,在这个会话中发送语音数据时,这些单词将用于识别处理。之后,发送e命令数据包(结束会话)后,这些单词将失效,也不会被保存。
用户词典的使用方法
要使用 profile 中注册的单词进行语音识别,在发送s命令数据包时,请在 profileId 中指定之前进行用户词典注册的 profile 的 profileId,并在开头添加":"(半角冒号)。
在多个成员使用的情况下,如果在 profileId 的开头不加":"就指定,可能会导致识别精度下降。
将自定义 profile 用于语音识别时的s命令
s MSB16K -a-general profileId=:test authorization=XXXXXXXXXXXXXX
s 命令响应数据包
作为对 s 命令的响应从服务器发送到客户端。
格式
类型 TEXT
开始请求成功时的响应数据包
当发送开始请求成功时,会返回单个字符s。
s
开始请求失败时的响应数据包
当发送开始请求失败时,会在s后面加上半角空格和错误消息。
s <error_message>
错误消息
客户端错误
由于s命令的请求参数或认证信息错误导致的错误。请修正后重新发送请求。
| 错误消息 | 内容 |
|---|---|
| s received unsupported audio format | 指定的音频格式有误。 |
| s can't verify service authorization | 认证失败。原因可能是以下之一: - 未设置 API key - 设置的 API key 有误 - 从API key 授予的限制中指定的IP地址以外的地址访问 |
| s can't validate service authorization | 认证失败。原因可能是以下之一: - 设置的 API key 有误(包括账户已失效的情况) - 指定的连接引擎名称有误(例如:将 -a-general误写为a-general等类型错误,或在未订阅 AmiVoice API Private 的情况下指定仅供 Private 使用的引擎等) |
| s service authorization has expired: <expirationTime> <expiresIn> | API Key限制的有效期已过。 |
| s can't connect to recognizer server | 认证失败。API Key不正确。 |
| s can't connect to recognizer server (can't find available servers) | 连接失败,原因是指定的连接引擎名称与音频格式的采样率组合不正确,无法找到适当的引擎。 例如,当为不支持 8k 采样率的引擎指定 8k 音频格式时,就会出现这种情况。关于各种语音识别引擎支援的采样率,请参考语音识别引擎列表。 |
| s can't start feeding audio data to recognizer server | 指定的 segmenter 参数有误,音频数据发送开始处理失败。 |
服务器错误
由于基础系统故障等原因可能偶尔发生的错误。请稍等片刻后重新发送请求。
| 错误信息 | 内容 |
|---|---|
| s can't connect to recognizer server (can't connect to server) | 无法连接到语音识别服务器。 |
| s can't connect to recognizer server (can't find available servers because all requested servers are busy) | 由于指定的连接引擎名称或音频格式对应的所有适当的语音识别服务器都处于繁忙状态,因此无法连接。 |
| s can't connect to recognizer server (can't find available servers because maximum allowed clients has reached) | 无法连接到语音识别服务器,因为已达到可连接客户端的最大数量。。 |
| s can't connect to recognizer server (can't send data) | 由于基础系统内服务器间的通信错误,连接失败。 |
| s can't connect to recognizer server (can't receive data) | 由于基础系统内服务器间的通信错误,连接失败。 |
| s can't connect to recognizer server (disconnected by force) | 由于基础系统内服务器间的通信错误,连接失败。 |
由于限制条件导致的错误
当触及限制条件时发生。请从s命令的请求重新开始。
| 错误信息 | 内容 |
|---|---|
| s session timeout occurred | 发生了会话超时。当超过限制条件中的会话最长时间时会发生。服务器端已执行断开连接处理。 |