当前位置:首页 > JavaScript

js实现语音

2026-04-05 19:39:37JavaScript

语音识别与合成实现方法

Web Speech API

Web Speech API 是浏览器原生支持的语音技术方案,包含以下两个核心功能:

语音识别(SpeechRecognition)

const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
recognition.lang = 'zh-CN';
recognition.onresult = (event) => {
  const transcript = event.results[0][0].transcript;
  console.log('识别结果:', transcript);
};
recognition.start();

语音合成(SpeechSynthesis)

const utterance = new SpeechSynthesisUtterance('你好世界');
utterance.lang = 'zh-CN';
speechSynthesis.speak(utterance);

第三方库方案

对于需要更高兼容性的场景,可以考虑以下库:

  • annyang:轻量级语音识别库

    annyang.addCommands({'你好': () => alert('你好!')});
    annyang.start({lang: 'zh-CN'});
  • Howler.js:高级音频播放控制

    const sound = new Howl({src: ['audio.mp3']});
    sound.play();

实现注意事项

  1. 浏览器兼容性检测

    if (!('webkitSpeechRecognition' in window)) {
    alert('当前浏览器不支持语音识别');
    }
  2. 用户权限处理

    navigator.permissions.query({name:'microphone'})
    .then(permissionStatus => {
     if (permissionStatus.state === 'denied') {
       showPermissionRequestUI();
     }
    });
  3. 移动端适配建议

  • 添加唤醒词检测功能
  • 优化离线识别场景
  • 处理屏幕锁定状态下的语音交互

性能优化技巧

  • 限制识别词汇范围提高准确率

    recognition.maxAlternatives = 3;
    recognition.continuous = false;
  • 预加载语音资源

    js实现语音

    const voices = speechSynthesis.getVoices();
    utterance.voice = voices.find(v => v.lang === 'zh-CN');

完整示例代码

<button id="startBtn">开始录音</button>
<script>
  document.getElementById('startBtn').addEventListener('click', () => {
    const recognition = new webkitSpeechRecognition();
    recognition.onresult = (e) => {
      const synth = window.speechSynthesis;
      const reply = new SpeechSynthesisUtterance('你说的是: '+e.results[0][0].transcript);
      synth.speak(reply);
    };
    recognition.start();
  });
</script>

标签: 语音js
分享给朋友:

相关文章

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

h5页面实现语音输入

h5页面实现语音输入

语音输入实现方法 H5页面实现语音输入主要依赖浏览器的Web Speech API,包括语音识别(SpeechRecognition)和语音合成(SpeechSynthesis)两部分。以下是具体实现…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js 实现mvc

js 实现mvc

MVC 模式简介 MVC(Model-View-Controller)是一种软件设计模式,将应用程序分为三个核心组件:模型(Model)处理数据和业务逻辑,视图(View)负责展示数据,控制器(Con…

js实现选择目录

js实现选择目录

在JavaScript中实现选择目录的功能通常需要结合浏览器API或第三方库,以下是几种常见方法: 使用 <input type="file"> 的 webkitdirectory 属性…