本文主要介绍 NPM 包 chivox-jssdk 的使用教程,涉及到语音识别相关的知识。读者需要掌握基本的前端知识、JavaScript 知识和语音识别的相关知识。
什么是 chivox-jssdk?
chivox-jssdk 是一款适用于 Web 端的语音识别 JavaScript SDK,它基于科大讯飞语音云平台,能够高效而准确地实现离线语音识别和在线语音识别。它提供了简单易用的 API 接口和丰富的语音相关功能,能够满足绝大部分 Web 开发者、公司和机构的语音识别需求。
如何安装和使用 chivox-jssdk?
你可以使用 npm 安装 chivox-jssdk:
npm install chivox-jssdk --save-dev
安装完成后,你可以在项目中引用它:
import { Recorder } from '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