Giter Club home page Giter Club logo

tencentcloud-speech-sdk-js's Introduction

简介

欢迎使用腾讯云语音SDK,腾讯云语音SDK为开发者提供了访问腾讯云语音识别、语音合成等语音服务的配套开发工具,简化腾讯云语音服务的接入流程。

本项目是腾讯云语音SDK的JS语言版本。

依赖环境

  1. 使用相关产品前需要在腾讯云控制台已开通相关语音产品。
  2. 在腾讯云控制台访问管理页面获取 SecretID 和 SecretKey 。
  3. 在腾讯云控制台账号信息页面获取AppId。
  4. 将获取的参数填入examples/config.js中

获取demo安装 项目启动

  1. git clone https://github.com/TencentCloud/tencentcloud-speech-sdk-js.git
  2. cd tencentcloud-speech-sdk-js
  3. 执行 npm install 添加依赖包
  4. 执行 npm run dev 访问 http://localhost:3000/examples/index.html 等各html文件可以看到本地运行demo,获取实时识别结果 服务端项目部署引用参考 sdk调用方式

sdk 调用方式

  1. 参考demo 引入examples/config.js、examples/asrauthentication.js和examples/speechrecognizer.js,需设置用户的SecretID,SecretKey 和 AppId。
  2. 简单版(使用内置录音)
    const webAudioSpeechRecognizer = new WebAudioSpeechRecognizer();

WebAudioSpeechRecognizer 类,提供 start()、stop()和获取识别结果事件,具体调用参考示例以及examples
3. 进阶版(自定义数据源)

    const speechRecognizer = new SpeechRecognizer();

SpeechRecognizer类,提供 start()、stop()、write()方法和获取识别结果事件,具体调用参考示例以及examples 除此之外,sdk 也提供了 WebRecorder类,可以获取采集到的浏览器数据(目前内置音频只能获取到16KHz的音频)。
WebRecorder类 提供start()、stop()方法、OnReceivedData()和OnError()事件。

参数特别说明

  1. 传参说明
    因为内置WebRecorder采样16k的数据,所以参数 engine_model_type 需要选择16k的引擎,为 '16k_zh',其他参数具体可见官网api 文档 https://cloud.tencent.com/document/product/1093/48982
  2. examples/asrauthentication.js 为鉴权函数,如需自己鉴权,直接覆盖就可

详细说明及示例

示例写法采用es6写法,若要兼容低版本浏览器,需要按照ES5语法书写。

  1. WebRecorder 类,采集浏览器音频数据
    // 实例化类
    const recorder = new WebRecorder(); 
    
    // 获取采集到的音频数据
    recorder.OnReceivedData = (res) => {
        console.log(res);
    }; 
    // 采集音频出错
    recorder.OnError() = (err) => {
        console.log(err)
    }

    // 开始录音
    recorder.start();

    // 结束录音
    recorder.stop();
  1. SpeechRecognizer 类
    // 实例化类
    const speechRecognizer = new SpeechRecognizer(params); 
    
    if (// 可以开始识别了) { // 此处需要判断是否建立连接成功,可在 OnRecognitionStart 回调中加标识判断
        // 发送数据 (此过程应该是一个连续的过程)
        speechRecognizer.write(data);
    }
    // 开始识别(此时连接已经建立)
    speechRecognizer.OnRecognitionStart = (res) => {
        console.log('开始识别', res)
    }
    // 一句话开始
    speechRecognizer.OnSentenceBegin = (res) => {
       console.log('一句话开始', res)
    }
    // 识别变化时
    speechRecognizer.OnRecognitionResultChange = (res) => {
       console.log('识别变化时', res)
    }
    // 一句话结束
    speechRecognizer.OnSentenceEnd = (res) => {
       console.log('一句话结束', res)
    }
    // 识别结束
    speechRecognizer.OnRecognitionComplete = (res) => {
       console.log('识别结束', res)
    }
    // 识别错误
    speechRecognizer.OnError = (res) => {
       console.log('识别失败', res)
    } 

    // 建立websocket连接
    speechRecognizer.start();
  
    // 断开连接
    if (连接已经建立...) {
        speechRecognizer.stop();
    }
  1. WebAudioSpeechRecognizer 类
    // 实例化类
    const webAudioSpeechRecognizer = new WebAudioSpeechRecognizer(params); 

    // 开始识别(此时连接已经建立)
    webAudioSpeechRecognizer.OnRecognitionStart = (res) => {
       console.log('开始识别', res)
    }
    // 一句话开始
    webAudioSpeechRecognizer.OnSentenceBegin = (res) => {
       console.log('一句话开始', res)
    }
    // 识别变化时
    webAudioSpeechRecognizer.OnRecognitionResultChange = (res) => {
       console.log('识别变化时', res)
    }
    // 一句话结束
    webAudioSpeechRecognizer.OnSentenceEnd = (res) => {
       console.log('一句话结束', res)
    }
    // 识别结束
    webAudioSpeechRecognizer.OnRecognitionComplete = (res) => {
       console.log('识别结束', res)
    }
    // 识别错误
    webAudioSpeechRecognizer.OnError = (res) => {
       console.log('识别失败', res)
    }

    // 建立录音同时建立websocket连接
    webAudioSpeechRecognizer.start();

     // 断开连接
    if (连接已经建立...) {
        webAudioSpeechRecognizer.stop();  
    }   

具体参见 examples 目录,该目录下包含各语音服务的示例代码。

浏览器兼容性问题

1、sdk内置录音采用 MediaDevices接口,不兼容ie 浏览器,其他浏览器兼容性具体文档可参考 https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices
2、目前经验证支持sdk的手机型号、浏览器(持续更新中~)

手机型号手机版本浏览器浏览器版本
小米8MIUI 12.0.3 (Android版本 10)小米浏览器V13.8.12
chrome浏览器chrome 78.0.3904.96
QQ浏览器11.2.1.1506
小米 MIX2MIUI 12.0.1 (Android版本 9)小米浏览器V13.7.16
chrome浏览器chrome 78.0.3904.96
小米6(Android版本 8)小米浏览器V13.8.12
chrome浏览器chrome V81.0.4044.117
QQ浏览器V11.2.0.0508
火狐浏览器V84.1.4
OPPO R11 Plus(Android版本 9)自带浏览器V10.7.16.2_a088588_210118
chrome浏览器V78.0.3904.96
QQ浏览器V11.2.0.0504
火狐浏览器V85.1.0
ViVo X23(Android版本 8.0.1)自带浏览器V8.9.14.9
chrome浏览器V70.0.3538.110
QQ浏览器V11.2.0.0504
火狐浏览器V85.1.0
三星SM-G955(Android版本 9)自带浏览器V13.2.1.70
chrome浏览器V81.0.4044.117
QQ浏览器V11.0.8.8812 LAB
火狐浏览器V84.1.4
iPhone8iOS 14.3Safari
chrome浏览器87.0.4280.77
QQ浏览器11.2.2.4684
UC 浏览器V13.2.3.1428
IPhone XS Maxios 14.2safari
IPhone 8ios 13.3.1safari
IPhone 7 Plusios 13.6safari
IPhone 12ios 14.3chrome浏览器V87.0.4280.77

3、目前经验证不支持sdk的手机型号、浏览器(持续更新中~)

手机型号手机版本浏览器浏览器版本
小米8MIUI 12.0.3 (Android版本 10)UC浏览器V13.2.3.1103
小米 MIX2MIUI 12.0.1 (Android版本 9)QQ浏览器11.2.1.1506
UC浏览器V13.2.3.1103
IPhone XS Maxios 14.2chrome浏览器V83.0.4103.88
QQ浏览器V11.1.5.4664
火狐浏览器V30.0
IPhone 8ios 13.3.1chrome浏览器V87.0.4280.77
QQ浏览器V10.6.3.4472
火狐浏览器V30.0
IPhone 7 Plusios 13.6chrome浏览器V87.0.4280.77
QQ浏览器V11.2.2.4684
火狐浏览器V30.0

tencentcloud-speech-sdk-js's People

Contributors

joyceehe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.