VoiceDictation
  • JavaScript 48.1%
  • HTML 31.7%
  • CSS 20.2%
Find a file
2026-05-10 23:01:34 +08:00
css feat: 添加中文/英文语言切换支持 2026-05-10 19:21:48 +08:00
js fix: 使用AudioContext实际采样率转码,修复不同设备音频失真问题 2026-05-10 21:47:47 +08:00
.gitignore chore: 删除不再使用的文件 2026-05-10 19:03:40 +08:00
index.html fix: 添加SVG favicon,修复浏览器tab缺失图标问题 2026-05-10 21:08:09 +08:00
README.md feat(vd): 修改readme删除deploy文件夹 2026-05-10 23:01:34 +08:00

百度实时语音识别 Web API

功能简介:

  • 基于百度AI开放平台实时语音识别WebSocket API将语音实时转换成文字。
  • 支持中文普通话(带标点)、英文、粤语、四川话、东北话等。
  • 采用WebSocket连接边上传音频边获取识别结果实现流式实时转写。
  • 开通即享每年10小时免费额度超出后可购买预付费包或按量后付费3元/小时)。
  • 本项目基于 @muguilin/xf-voice-dictation 改造将讯飞API替换为百度API。

实例效果:

申请百度API凭证

  1. 打开 百度AI开放平台 - 实时语音识别
  2. 点击右上角"控制台"登录(需百度账号并实名认证)
  3. 在控制台创建应用,选择"语音技术"服务,勾选"实时语音识别"
  4. 创建后获取 APPIDAPI Key

注意:js/config.js 包含真实 API 凭证,已加入 .gitignore。请勿将此文件提交到公开仓库。部署时确保配置文件权限安全。

使用方法:

# 1. 复制配置文件模板
cp js/config.example.js js/config.js

# 2. 编辑 config.js填入你的百度 API 凭证
# APPID: 百度控制台获取的 AppID
# APIKey: 百度控制台获取的 API Key
// js/config.js
window.BdConfig = {
    APPID: '你的APPID',   // 数字,如 12345678
    APIKey: '你的APIKey'  // 字符串
};
<!-- 浏览器中直接引入 -->
<script src="./js/config.js"></script>
<script src="./js/bd-voice-dictation.js"></script>

<script>
// config.js 中定义的 window.BdConfig 会被自动读取
const bdVoice = new BdVoiceDictation({
    APPID: window.BdConfig.APPID,
    APIKey: window.BdConfig.APIKey,
    ...
});

// 开始录音识别
bdVoice.start();

// 停止录音识别
bdVoice.stop();

// 获取当前识别结果
const result = bdVoice.getResult();

// 完全重置(释放所有资源)
bdVoice.destroy();
</script>

API 说明:

凭证通过 js/config.js 文件管理(不纳入版本控制),部署前将 config.example.js 复制为 config.js 并填入实际值。

const bdVoice = new BdVoiceDictation({
    APPID: 'your_app_id',   // 必填
    APIKey: 'your_api_key', // 必填

    // WebSocket请求地址非必传默认wss://vop.baidu.com/realtime_asr
    url: '',

    // 识别模型非必传默认15372
    dev_pid: 15372,

    // 自动关闭时间毫秒默认3000
    autoCloseTime: 3000,

    // 是否启用自动关闭
    autoClose: true,

    // 调试模式
    debug: false,

    // 音频发送间隔毫秒默认160
    interval: 160,

    // 每次发送的字节数默认5120
    frameSize: 5120,

    onWillStatusChange: (oldStatus, newStatus) => {},
    onTextChange: (text) => {},
    onError: (error) => {}
});

识别模型dev_pid说明

dev_pid 语言 标点 说明
1537 中文普通话 弱标点(逗号、句号) 手机近场输入
15372 中文普通话 加强标点 推荐使用
15376 中文多方言 弱标点 支持粤语、四川话、东北话
1737 英语 无标点 手机近场输入
17372 英语 加强标点 推荐使用

使用中文多方言模型pid:15376需同时设置user参数任意值可在setParams中传给内部。

计费说明:

常见问题:

Q: 和讯飞版的区别是什么?

A: 百度版无需HMAC-SHA256签名和CryptoJS依赖认证更简单音频以二进制帧发送而非base64 JSON建议160ms/帧。

Q: 只能在 HTTPS 环境下使用吗?

A: 浏览器要求在 localhost127.0.0.1HTTPS 环境下才能获取麦克风权限。

Q: 支持哪些浏览器?

A: 支持 Chrome、Edge、Firefox、Safari 等现代浏览器。

Q: 状态流转顺序是怎样的?

A: nullinitingend