npm 包 chivox-jssdk 使用教程

阅读时长 7 分钟读完

本文主要介绍 NPM 包 chivox-jssdk 的使用教程,涉及到语音识别相关的知识。读者需要掌握基本的前端知识、JavaScript 知识和语音识别的相关知识。

什么是 chivox-jssdk?

chivox-jssdk 是一款适用于 Web 端的语音识别 JavaScript SDK,它基于科大讯飞语音云平台,能够高效而准确地实现离线语音识别和在线语音识别。它提供了简单易用的 API 接口和丰富的语音相关功能,能够满足绝大部分 Web 开发者、公司和机构的语音识别需求。

如何安装和使用 chivox-jssdk?

你可以使用 npm 安装 chivox-jssdk:

安装完成后,你可以在项目中引用它:

接下来,你可以使用 Recorder 类实例化一个录音器,开始录音,并实现语音转换:

-- -------------------- ---- -------
----- -------- - --- ----------
  ----- ------
  ----------- ------
  ---------- -
    -------- -- -- -
      --------------------- -- --------
      -----------------
    --
    ---------- --------- -- -
      ---------------------
    --
    -------- ------- -- -
      ---------------------
    --
  --
---

在上面的代码中,我们实例化了一个 Recorder 对象,并指定了录音类型为 MP3,采样率为 16000。在 callbacks 属性中,我们定义了三个回调函数:当 Recorder 准备好时调用 onReady() 回调函数,开始录音并启动语音转换,当 Recorder 接收到识别结果(包含所有候选结果)时调用 onMessage() 回调函数,如果出错,则调用 onError() 回调函数。

chivox-jssdk 的高级用法

你还可以使用 chivox-jssdk 的高级功能,比如:实现连续语音转换、自定义关键词、语音标点、超时设定等。

实现连续语音转换

实现连续语音转换需要设置连续语音转换的相关参数。我们使用如下代码来实现连续语音转换:

-- -------------------- ---- -------
----- -------- - --- ----------
  ----- ------
  ----------- ------
  --------- --------
  ---- -
    ----- ------
    ---------- -----
    --------- ------
    ----------- -
      ----------------
    --
  --
  ---------- -
    -------- -- -- -
      --------------------- -- --------
      -----------------
    --
    ---------- --------- -- -
      ---------------------
      -----------------
    --
    -------- ------- -- -
      ---------------------
    --
  --
---

上述代码中,“vad” 表示语音活动检测,我们使用“ivw”来指定“keep recording on”模式,即启用连续语音转换。阈值是调整语音录入敏感度的参数,在此要设置较低的阈值,以便识别出以尽可能低的声音进行的录音。持续时间是两次识别间间隔的最大时间(毫秒),默认值是 3000,此处设成了 10000。onTimeout() 回调函数表示 timeout 前由 SDK 调用的函数,我们在此调用 recorder.stop() 方法停止录音。

自定义关键词

我们可以使用 chivox-jssdk 自带的.ivw 格式文件,通过语音成型支持结构化关键词和热词功能。现在我们可以通过 SDK 实时设置自定义 ivw 文件格式的语音关键词:

-- -------------------- ---- -------
----- -------- - --- ----------
  ----- ------
  ----------- ------
  --------- --------
  ---- -
    ---------- -----
    ------------ ------
    -------- ---------
    --------- --------- -- -
      ------------------------------------
    --
  --
  ---------- -
    -------- -- -- -
      --------------------- -- --------
      -----------------
    --
    ---------- --------- -- -
      ---------------------
      -----------------
    --
    -------- ------- -- -
      ---------------------
    --
  --
---

上面的代码中,我们设置了 ivw 部分的关键词为“自定义关键词”。当 ivw 识别到“自定义关键词”时,就会触发 onResult() 回调函数,我们输出“识别指令:message.data”的结果。

语音标点

我们可以使用 chivox-jssdk 实现语音标点,让语音转换自动加入标点符号,从而使人们更加舒适地使用语音识别技术。

以下示例中,我们使用了默认的语言为“zh_cn”,用 chivox-jssdk 中的“IVWTouch”来实现语音标点:

-- -------------------- ---- -------
----- -------- - --- ----------
  ----- ------
  ----------- ------
  --------- --------
  ---- -
    ----- --------
    ---------- -----
    ------------ ------
    -------- ---------
    --------- --------- -- -
      ------------------------------------
    --
  --
  ------------------- -
    ------------- ------
  --
  ---------- -
    -------- -- -- -
      --------------------- -- --------
      -----------------
    --
    ---------- --------- -- -
      ---------------------
      -----------------
    --
    -------- ------- -- -
      ---------------------
    --
  --
---

超时设定

设置超时设定可以避免录入过长的音频对程序的影响,同时避免程序无限等待响应。

-- -------------------- ---- -------
----- -------- - --- ----------
  ----- ------
  ----------- ------
  ---------- -
    -------- -- -- -
      --------------------- -- --------
      -----------------
    --
    ---------- --------- -- -
      ---------------------
      -----------------
    --
    -------- ------- -- -
      ---------------------
    --
  --
  -------- -----
---

上述代码中,我们设定了超时时间为 5 秒钟。如果超时时间到达时仍没有结果,就会自动停止录音。

结论

本文介绍了如何使用 chivox-jssdk 实现离线语音识别和在线语音识别,并以详细的代码和说明向读者展示了如何使用 Recorder 类、如何实现连续语音转换、自定义关键词和语音标点、超时设定等高级用法。望读者通过本文掌握使用 chivox-jssdk 进行语音识别的技巧,并在实践中加深了解和实践。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562bc81e8991b448dffe6

纠错
反馈