新闻中心

html5怎么插入语音_HTML5语音识别API与音频录制实现

2025-10-22
浏览次数:
返回列表
使用标签可插入语音播放,支持多格式兼容;2. Web Speech API实现语音识别,需HTTPS环境且推荐Chrome;3. MediaRecorder API用于音频录制,通过麦克风捕获并保存为Blob;4. 可整合二者功能,同步录音与转文本,注意权限与兼容性处理。

html5怎么插入语音_html5语音识别api与音频录制实现

要在HTML5中插入语音播放和实现语音识别与音频录制,需要分别使用<audio></audio>标签、Web Speech API 和 MediaRecorder API。下面分步说明如何实现这些功能。

1. 插入语音播放(使用 标签)

HTML5 提供了 <audio></audio> 标签,用于在网页中嵌入音频文件,支持多种格式如 MP3、W*、OGG。

示例代码:
<audio controls>
  <source src="example.mp3" type="audio/mpeg">
  <source src="example.w*" type="audio/w*">
  您的浏览器不支持 audio 标签。
</audio>

说明:

  • controls 属性显示播放、暂停、音量等控件。
  • 提供多个 <source></source> 可提高浏览器兼容性。

2. 实现语音识别(Web Speech API)

HTML5 的 Web Speech API 支持语音识别,可将用户的语音转换为文本。目前主要在 Chrome 浏览器中支持较好。

示例代码:
<button id="startBtn">开始录音</button>
<p id="result">识别结果将显示在这里</p>

<script>
const startBtn = document.getElementById('startBtn');
const result = document.getElementById('result');

// 检查浏览器是否支持 SpeechRecognition
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (!SpeechRecognition) {
  result.textContent = '您的浏览器不支持语音识别,请使用 Chrome 浏览器。';
} else {
  const recognition = new SpeechRecognition();
  recognition.lang = 'zh-CN'; // 设置中文识别
  recognition.interimResults = false;

  startBtn.addEventListener('click', () => {
    result.textContent = '正在聆听…';
    recognition.start();
  });

  recognition.addEventListener('result', (e) => {
    const transcript = e.results[0][0].transcript;
    result.textContent = '识别结果:' + transcript;
  });

  recognition.addEventListener('error', () => {
    result.textContent = '识别失败,请重试。';
  });
}
</script>

注意: 网站必须通过 HTTPS 协议运行,否则语音识别可能无法工作。

MarsCode MarsCode

字节跳动旗下的免费AI编程工具

MarsCode 339 查看详情 MarsCode

3. 实现音频录制(MediaRecorder API)

使用 MediaRecorder API 可以录制用户麦克风输入的音频,并保存为 Blob 文件(如 W* 或 MP3)。

示例代码:
<button id="recordBtn">开始录制</button>
<button id="stopBtn" disabled>停止录制</button>
<audio id="playback" controls style="display:none;"></audio>

<script>
let mediaRecorder;
let audioChunks = [];
const recordBtn = document.getElementById('recordBtn');
const stopBtn = document.getElementById('stopBtn');
const playback = document.getElementById('playback');

recordBtn.addEventListener('click', async () => {
  const stream = await n*igator.mediaDevices.getUserMedia({ audio: true });
  mediaRecorder = new MediaRecorder(stream);

  mediaRecorder.start();
  recordBtn.disabled = true;
  stopBtn.disabled = false;

  mediaRecorder.addEventListener('data*ailable', event => {
    audioChunks.push(event.data);
  });

  mediaRecorder.addEventListener('stop', () => {
    const audioBlob = new Blob(audioChunks, { type: 'audio/w*' });
    const audioUrl = URL.createObjectURL(audioBlob);
    playback.src = audioUrl;
    playback.style.display = 'block';
    audioChunks = []; // 清空缓存

    // 可选:上传到服务器
    // const formData = new FormData();
    // formData.append('audio', audioBlob, 'recording.w*');
  });
});

stopBtn.addEventListener('click', () => {
  mediaRecorder.stop();
  recordBtn.disabled = false;
  stopBtn.disabled = true;

  // 停止所有音轨以关闭麦克风
  mediaRecorder.stream.getTracks().forEach(track => track.stop());
});
</script>

说明:

  • n*igator.mediaDevices.getUserMedia() 请求麦克风权限。
  • MediaRecorder 将音频流分段保存为 Blob。
  • 最终生成可播放的音频 URL。

4. 完整功能整合建议

你可以将语音识别与音频录制结合使用:

  • 用 MediaRecorder 录制原始音频用于保存或上传。
  • 同时使用 SpeechRecognition 实时转文字,提升交互体验。
  • 注意处理用户权限请求(麦克风访问)和浏览器兼容性问题。

基本上就这些。实现语音功能时,关键是确保协议安全(HTTPS)、处理好用户交互和错误反馈。不复杂但容易忽略细节。

以上就是html5怎么插入语音_HTML5语音识别API与音频录制实现的详细内容,更多请关注其它相关文章!


# 游戏开发  # 重庆高端seo电话  # 如皋产业网站建设  # 怎么找展会网站推广员  # 汨罗律师网站推广平台  # 南京网站搜索优化方案  # 池州seo公司推荐10火星  # 新乡靠谱网站优化电话  # 怎么做企业网站推广赚钱  # 应用多的网站推广  # 花溪区seo哪家好用点  # 你可以  # 在这里  # 文档  # html5  # 转换工具  # 使用技巧  # 不支持  # 保存为  # 您的  # 语音识别  # stream  # win  # ai  # app  # 浏览器  # html 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  UC浏览器官网入口2025最新 UC浏览器网页版正式地址  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  必由学官方登录入口 必由学教师学生账号快速访问  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  钉钉视频会议画面卡顿如何解决 钉钉会议画面优化方法  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  大象笔记网页版入口 印象笔记网页版登录入口  Mac怎么使用表情符号_Mac Emoji快捷键面板  深入理解J*aScript中的B样条曲线与节点向量生成  J*aScript 字符串标签转换:使用正则表达式高效替换  谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】  实现全屏滚动与导航点:专业教程  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit  Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区  蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗  如何将HTML表格多行数据保存到Google Sheets  解决 MongoDB 聚合查询中对象数组 _id 匹配问题  CSS图片焦点样式实现教程:理解与应用tabindex属性  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  126邮箱网页版官方入口 126邮箱账号在线登录平台  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  快手网页版在线登录 快手网页版官网入口快速访问  12306怎么选座位选到安静区_12306选座安静区域选择策略  在Pyomo中实现基于变量的条件约束:Big-M方法详解  不同用户不同价格! 索尼开启账户个性化定价测试  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  马斯克:Optimus 人形机器人复数形式为 Optimi  抓大鹅解压小游戏 抓大鹅摸鱼解压入口  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  双系统安装时,如何设置默认启动系统? msconfig命令了解一下!  Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】  163邮箱注册官网 免费申请163个人邮箱  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  Shopware订单对象中获取产品自定义字段的正确方法  J*a最大堆Heapify方法修复:索引计算与边界条件深度解析  qq游戏手机版下载安装_qq游戏移动端入口  React Router 嵌套组件中 URL 重定向问题的解决方案  德邦快递查询平台 德邦快递物流信息查询入口  BetterDiscord插件中安全更新用户简介的实践指南  Surface怎么安装系统 微软Surface Pro U盘重装win11教程  文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】  css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容 

搜索