跳至主要内容

Hrp.html

Hrp.js的示例程序 (hrp.html)是一个在浏览器上运行的应用程序。

直接双击打开hrp.html文件时,它不会运行。请将此文件放置在Web服务器上,并通过https://http://localhost/打开。

提示

直接双击打开hrp.html文件不能运行的原因是,1.1.9版本以后的示例程序使用Web Audio API的AudioWorklet进行音频处理,当文件直接作为file://打开时,这个API无法运行。如果想直接打开文件并运行,请使用DEPRECATED文件夹中的hrp.html。但是,该文件夹中的文件使用了已被弃用的API ScriptProcessorNode,将来可能无法使用。此外,今后使用ScriptProcessorNode的示例程序将不会更新。

备注
  • 运行时需要设置在 MyPage 上显示的自己的APPKEYService IDService Password
警告
  • 请注意,根据使用的语音识别会产生相应的使用费用

准备

这里说明在已安装Python3的环境中运行示例程序的步骤。

  1. 下载示例程序,并解压到本地机器的任意目录中。
  2. 在终端中打开解压后的目录
  3. 执行以下命令启动HTTP服务器:
python3 -m http.server --bind localhost 8081
  1. 在浏览器中访问以下地址,打开示例程序:

http://localhost:8081/Hrp/javascript/hrp.html

应该会显示如下执行示例中的画面。

执行示例

  1. 在浏览器中访问时,会显示如下画面:
  2. 在[サービス ID]中输入 MyPage 上的[Service ID]。
  3. 在[サービスパスワード]中输入 MyPage 上的[Service Password]。
  4. 点击[サービス認証キーの取得]按钮。
  5. 确认[APPKEY]中已输入一次性 APPKEY。或者,不执行步骤2~4,直接输入 MyPage 上显示的自己的APPKEY
  6. 点击[音声データの送信]按钮。
  7. 在麦克风使用许可对话框中点击[Allow]。
  8. 自由说出日语。
  9. 在页面下半部分,将依次显示识别结果文本和服务器发送的事件。

编码器设置

从版本 1.1.12 开始,可以使用压缩音频数据的编码器。有三种编码器,根据使用的编码器,压缩方式会有所不同。以下解释各编码器的区别和使用方法。

编码器类型和压缩格式

Hrp.js 可以使用以下三种编码器。

  1. encoder_opus.js
  2. encoder_opus_ogg.js
  3. encoder_adpcm.js

根据使用这些编码器的组合,音频数据的格式、压缩率和编码的 CPU 负载等如下所示:

编码器编解码器容器格式比特率压缩率CPU 负载
仅使用 1Opus自定义格式24 kbps约 9.4 %较高
1 和 2OpusOgg 格式24 kbps约 9.4 %较高
仅使用 3ADPCM自定义格式64 kbps25 %非常低

如果不使用任何编码器,音频数据将不会被压缩。此外,在上述任何情况下,与未压缩的情况相比,识别精度几乎没有差异。如果处理终端的性能不足或 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);
}

编码器的使用方法

hrp.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.jsencoder_opus_ogg.js。保留不必要的代码会稍微增加加载时间,因此即使使用 encoder_opus.jsencoder_opus_ogg.js,我们也建议删除 encoder_adpcm.js 的描述。

提示

AmiVoice Tech Blog 验证了压缩率对语音识别精度的影响,供参考。

[We Tested It!] How does speech recognition accuracy change with sampling rate and compression rate?