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>=<value> 的格式指定请求参数。 如果 <value> 中包含空格,请用半角双引号(")将 value 括起来。
<key> 可指定的参数如下。authorization(API 密钥)是必需的。各参数的详细信息请参阅手册的请求参数。
- (*1)
authorization参数除了可以作为请求参数指定外,在通过 WebSocket 连接时也可以通过 HTTP 请求头指定。请求头的指定方法请参阅手册的 通过 HTTP 请求头发送认证信息的方法。 - (*2) 仅可用于
-a-rule-input-private引擎。
设置示例
以下是指定仅在会话期间有效的单词注册(profileWords)的示例。由于值中包含空格,因此用双引号括起来。
s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization={API_KEY}
以下是指定用户词典配置文件的示例。
s MSB16K -a-general profileId=:test authorization={API_KEY}
有关用户词典使用方法的详细信息,请参阅手册的用户词典。
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 | 发生了会话超时。当超过限制条件中的会话最长时间时会发生。服务器端已执行断开连接处理。 |