Wrp.html
Wrp.js的示例程序(wrp.html)是一个在浏览器上运行的应用程序。
直接双击打开wrp.html文件无法运行。请将此文件放置在Web服务器上,并通过https://或http://localhost/来打开。
直接双击打开wrp.html文件无法运行的原因是,1.1.9版本之后的示例程序使用Web Audio API的AudioWorklet进行音频处理,而直接以file://方式打开文件时,这个API无法工作。如果想 直接打开文件并运行,可以使用DEPRECATED文件夹中的wrp.html。但是,该文件夹中的文件使用了已废弃的API ScriptProcessorNode,未来可能无法使用。此外,使用ScriptProcessorNode的示例程序将不再更新。
- 运行时需要设置在 MyPage 上显示的个人
APPKEY
- 请注意,使用语音识别将产生相应的费用
准备
这里说明在已安装Python3的环境中运行示例程序的步骤。
- 下载示例程序,并解压到本地机器的任意目录。
- 在终端中打开解压后的目录
- 执行以下命令启动HTTP服务器。
python3 -m http.server --bind localhost 8081
- 在浏览器中访问以下地址,打开示例程序。
http://localhost:8081/Wrp/javascript/wrp.html
应该会显示如下执行示例所示的画面。
执行示例
- 在浏览器中访问后,将显示如下画面。

- 在[サービス ID]中输入 MyPage 上的[Service ID]。
- 在[サービスパスワード]中输入 MyPage 上的[Service Password]。
- 点击[サービス認証キーの取得]按钮。
- 确认[APPKEY]中已输入一次性 APPKEY。
- 点击[録音の開始]按钮。
- 在麦克风使用许可对话框中点击[Allow] 。
- 用日语自由发言。
- 在页面下半部分,将依次显示识别结果文本和从服务器发送的事件。
编码器设置
1.1.12版本以后,可以使用压缩音频数据的编码器。有三种编码器可供选择,每种编码器的压缩方式不同。以下解释各种编码器的区别和使用方法。
编码器类型和压缩格式
Wrp.js可以使用以下三种编码器。
encoder_opus.jsencoder_opus_ogg.jsencoder_adpcm.js
根据使用这些编码器的组合,音频数据的格式、压缩率和编码的CPU负载等如下所示:
| 编码器 | 编解码器 | 容器格式 | 比特率 | 压缩率 | CPU负载 |
|---|---|---|---|---|---|
| 仅使用 1 | Opus | 自定义格式 | 24 kbps | 约9.4% | 较高 |
| 1 和 2 | Opus | Ogg格式 | 24 kbps | 约9.4% | 较高 |
| 仅使用 3 | ADPCM | 自定义格式 | 64 kbps | 25% | 非常低 |
如果不使用任何编码器,音频数据将不会被压缩。此外,在上述任何情况下,与未压缩的情况相比,识别精度几乎没有差异。如果处理的终端设备性能不足或CPU资源不足,建议仅使用3的ADPCM;否则,建议仅使用1的Opus。
对于Opus,可以通过修改recorder.js中的以下部分来更改压缩率。默认为24kbps。请注意,过度压缩可能会降低识别精度。
if (!encoder_ && recorder_.opusPacking && window.Encoder && window.Encoder.createOpusEncoder) {
encoder_ = window.Encoder.createOpusEncoder(audioSamplesPerSec_, /* bitsPerSec */ 24000, /* vbr: VBR */ 1, /* application: AUDIO */ 1, /* complexity */ 10);
}
编码器使用方法
在wrp.html文件的head部分有以下描述:
<script type="text/javascript" src="encoder_adpcm.js"></script>
<script type="text/javascript" src="encoder_opus.js"></script>
<script type="text/javascript" src="encoder_opus_ogg.js"></script>
根据要使用的编码器,保留这部分中需要的内容,删除不需要的部分。如果不使用编码器,请全部删除。
请注意,如果像默认情况下那样列出了三种类型,将会使用encoder_opus.js和encoder_opus_ogg.js。保留不必要的代码会稍微增加加载时间,因此即使使用encoder_opus.js和encoder_opus_ogg.js,也建议删除encoder_adpcm.js的描述。
AmiVoice Tech Blog上验证了压缩率对语音识别精度的影响,供参考。
[We Tested It!] How does speech recognition accuracy change with sampling rate and compression rate?