返回顶部
首页 > 资讯 > 前端开发 > html >如何在Javascript应用程序中执行语音识别
  • 529
分享到

如何在Javascript应用程序中执行语音识别

2024-04-02 19:04:59 529人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关如何在javascript应用程序中执行语音识别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。语音识别是计算机科学和计算语言学的

这篇文章将为大家详细讲解有关如何在javascript应用程序中执行语音识别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

如何在Javascript应用程序中执行语音识别

语音识别是计算机科学和计算语言学的一个跨学科子领域。它可以识别口语并将其翻译成文本,它也被称为自动语音识别(ASR),计算机语音识别或语音转文本(STT)。

机器学习(ML)是人工智能ai)的一种应用,它使系统能够自动学习并从经验中进行改进,而无需进行明确的编程。机器学习在本世纪提供了大多数语音识别方面的突破。如今,语音识别技术无处不在,例如Apple Siri,Amazon Echo和Google Nest。

语音识别以及语音响应(也称为语音合成或文本到语音(TTS))由WEB speech api提供支持。

在本文中,我们重点介绍JavaScript应用程序中的语音识别。另一篇文章介绍了语音合成。

语音识别接口

SpeechRecognition 是识别服务的控制器接口,在Chrome中称为 webkitSpeechRecognition。SpeechRecognition 处理从识别服务发送的 SpeechRecognitionEvent。SpeechRecognitionEvent.results 返回一个SpeechRecognitionResultList 对象,该对象表示当前会话的所有语音识别结果。

可以使用以下几行代码来初始化 SpeechRecognition:

// 创建一个SpeechRecognition对象 const recognition = new webkitSpeechRecognition();  // 配置设置以使每次识别都返回连续结果 recognition.continuous = true;  // 配置应返回临时结果的设置 recognition.interimResults = true;  // 正确识别单词或短语时的事件处理程序 recognition.onresult = function (event) {   console.log(event.results); };

ognition.start() 开始语音识别,而 ognition.stop() 停止语音识别,它也可以中止( recognition.abort)。

当页面正在访问您的麦克风时,地址栏中将显示一个麦克风图标,以显示该麦克风已打开并且正在运行。

如何在Javascript应用程序中执行语音识别

我们用句子对页面说。“hello comma I'm talking period.” onresult 在我们说话时显示所有临时结果。

如何在Javascript应用程序中执行语音识别

这是此示例的html代码:

<!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF-8" />     <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Speech Recognition</title>     <script>       window.onload = () => {         const button = document.getElementById('button');         button.addEventListener('click', () => {           if (button.style['animation-name'] === 'flash') {             recognition.stop();             button.style['animation-name'] = 'none';             button.innerText = 'Press to Start';             content.innerText = '';           } else {             button.style['animation-name'] = 'flash';             button.innerText = 'Press to Stop';             recognition.start();           }         });          const content = document.getElementById('content');          const recognition = new webkitSpeechRecognition();         recognition.continuous = true;         recognition.interimResults = true;         recognition.onresult = function (event) {           let result = '';           for (let i = event.resultIndex; i < event.results.length; i++) {             result += event.results[i][0].transcript;           }           content.innerText = result;         };       };     </script>     <style>       button {         background: yellow;         animation-name: none;         animation-duration: 3s;         animation-iteration-count: infinite;       }       @keyframes flash {         0% {           background: red;         }         50% {           background: green;         }       }     </style>   </head>   <body>     <button id="button">Press to Start</button>     <div id="content"></div>   </body> </html>

第25行创建了 SpeechRecognition 对象,第26和27行配置了 SpeechRecognition 对象。

当一个单词或短语被正确识别时,第28-34行设置一个事件处理程序。

第19行开始语音识别,第12行停止语音识别。

在第12行,单击该按钮后,它可能仍会打印出一些消息。这是因为 Recognition.stop() 尝试返回到目前为止捕获的SpeechRecognitionResult。如果您希望它完全停止,请改用 ognition.abort()。

您会看到动画按钮的代码(第38-51行)比语音识别代码长。这是该示例的视频剪辑:https://youtu.be/5V3bb5YOnj0

如何在Javascript应用程序中执行语音识别

以下是浏览器兼容性表:

如何在Javascript应用程序中执行语音识别

网络语音识别依赖于浏览器自己的语音识别引擎。在Chrome中,此引擎在云中执行识别。因此,它仅可在线运行。

语音识别库

有一些开源语音识别库,以下是基于npm趋势的这些库的列表:

1. Annyang

Annyang是一个JavaScript语音识别库,用于通过语音命令控制网站。它建立在SpeechRecognition Web API之上。在下一节中,我们将举例说明annyang的工作原理。

2. artyom.js

artyom.js是一个JavaScript语音识别和语音合成库。它建立在Web语音API的基础上,除语音命令外,它还提供语音响应。

3. Mumble

Mumble是一个JavaScript语音识别库,用于通过语音命令控制网站。它建立在SpeechRecognition Web API之上,这类似于annyang的工作方式。

4. julius.js

Julius是面向语音相关研究人员和开发人员的高性能,占用空间小的大词汇量连续语音识别(LVCSR)解码器软件。它可以在从微型计算机到云服务器的各种计算机和设备上执行实时解码。Julis是使用C语言构建的,而julius.js是Julius自以为是JavaScript的移植版。

5.voice-commands.js

voice-commands.js是一个JavaScript语音识别库,用于通过语音命令控制网站。它建立在SpeechRecognition Web API之上,这类似于annyang的工作方式。

Annyang

Annyang初始化一个 SpeechRecognition 对象,该对象定义如下:

var SpeechRecognition = root.SpeechRecognition ||                                                              root.webkitSpeechRecognition ||                                                   root.mozSpeechRecognition ||                                                   root.msSpeechRecognition ||                                                   root.oSpeechRecognition;

有一些API可以启动或停止annyang:

  • annyang.start:使用选项(自动重启,连续或暂停)开始监听,例如 annyang.start({autoRestart:true,Continuous:false})。

  • annyang.abort:停止收听(停止SpeechRecognition引擎或关闭麦克风)。

  • annyang.pause:停止收听(无需停止SpeechRecognition引擎或关闭麦克风)。

  • annyang.resume:开始收听时不带任何选项。

这是此示例的HTML代码:

<!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF-8" />     <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Annyang</title>     <script src="//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.1/annyang.min.js"></script>     <script>       window.onload = () => {         const button = document.getElementById('button');         button.addEventListener('click', () => {           if (button.style['animation-name'] === 'flash') {             annyang.pause();             button.style['animation-name'] = 'none';             button.innerText = 'Press to Start';             content.innerText = '';           } else {             button.style['animation-name'] = 'flash';             button.innerText = 'Press to Stop';             annyang.start();           }         });          const content = document.getElementById('content');          const commands = {           hello: () => {             content.innerText = 'You said hello.';           },           'hi *splats': (name) => {             content.innerText = `You greeted to ${name}.`;           },           'Today is :day': (day) => {             content.innerText = `You said ${day}.`;           },           '(red) (green) (blue)': () => {             content.innerText = 'You said a primary color name.';           },         };          annyang.addCommands(commands);       };     </script>     <style>       button {         background: yellow;         animation-name: none;         animation-duration: 3s;         animation-iteration-count: infinite;       }       @keyframes flash {         0% {           background: red;         }         50% {           background: green;         }       }     </style>   </head>   <body>     <button id="button">Press to Start</button>     <div id="content"></div>   </body> </html>

第7行添加了annyang源代码。

第20行启动annyang,第13行暂停annyang。

Annyang提供语音命令来控制网页(第26-42行)。

第27行是一个简单的命令。如果用户打招呼,页面将回复“您说&lsquo;你好&rsquo;。”

第30行是带有 splats 的命令,该命令会贪婪地捕获命令末尾的多词文本。如果您说“hi,爱丽丝e”,它的回答是“您向爱丽丝致意。”如果您说“嗨,爱丽丝和约翰”,它的回答是“您向爱丽丝和约翰打招呼。”

第33行是一个带有命名变量的命令。一周的日期被捕获为 day,在响应中被呼出。

第36行是带有可选单词的命令。如果您说“黄色”,则将其忽略。如果您提到任何一种原色,则会以“您说的是原色名称”作为响应。

从第26行到第39行定义的所有命令都在第41行添加到annyang中。

我们已经了解了JavaScript应用程序中的语音识别,Chrome对Web语音API提供了最好的支持。我们所有的示例都是在Chrome浏览器上实现和测试的。

在探索Web语音API时,这里有一些提示:如果您不想在日常生活中倾听,请记住关闭语音识别应用程序。

关于如何在Javascript应用程序中执行语音识别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何在Javascript应用程序中执行语音识别

本文链接: https://lsjlt.com/news/81602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Javascript应用程序中执行语音识别
    这篇文章将为大家详细讲解有关如何在Javascript应用程序中执行语音识别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。语音识别是计算机科学和计算语言学的...
    99+
    2024-04-02
  • JS应用程序中怎么执行语音识别
    这篇文章主要介绍了JS应用程序中怎么执行语音识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。语音识别是计算机科学和计算语言学的一个跨学科子领域。它可以识别口语并将其翻译成文...
    99+
    2023-06-15
  • JavaScript如何实现语音识别
    这篇文章将为大家详细讲解有关JavaScript如何实现语音识别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这里介绍一个开源的JavaScript语言输入库,名叫ann...
    99+
    2024-04-02
  • Python如何进行语音识别,语音转换功能实现
    Python如何进行语音识别,语音转换功能实现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。相信大家都非常喜欢那些萝莉音,看那些女装大佬,开一个变声器声音实在是很有诱惑力,下面...
    99+
    2023-06-02
  • 如何在PHP中实现语音识别和合成?
    随着人工智能技术的不断发展,语音识别和合成功能已经成为了当下越来越流行的技术之一,而PHP语言在Web开发中也是一种被广泛使用的编程语言。本文将介绍如何在PHP中实现语音识别和合成功能。一、语音识别语音识别指的是将语音转换成文本的过程,许多...
    99+
    2023-05-14
    语音识别 语音合成 PHP语言
  • python语音识别whisper如何使用
    这篇文章主要介绍了python语音识别whisper如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python语音识别whisper如何使用文章都会有所收获,下面我们一起来看看吧。whisper语音识别...
    99+
    2023-07-05
  • 如何在 Go 语言中使用 JavaScript 实现实时应用程序?
    随着互联网的发展,实时应用程序越来越受到人们的关注。实时应用程序是指能够在用户与应用程序之间交互时立即响应的应用程序。这种应用程序需要能够快速地处理大量的数据,并在必要的时候向用户发送数据。为了实现这种应用程序,开发人员需要使用多种编程语...
    99+
    2023-09-08
    实时 教程 javascript
  • Win10如何禁止开机自动运行语音识别
      每次启动Win10系统后,语音识别功能就自动运行。它并非对每个用户都有很大的使用价值,这样每次开机都运行会很烦人。那么Win10如何禁止开机自动运行语音识别呢   解决方法   第一步、右键单击开始按钮,或者按下Wi...
    99+
    2023-06-12
    Win10 开机 语音识别 语音
  • 如何在pycharm中运行flask应用程序
    这篇文章给大家介绍如何在pycharm中运行flask应用程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先你的使用pycharm创建你的第一个app。然后,你会有一个基本的应用程序了。没错就是那个hello wo...
    99+
    2023-06-15
  • 怎么在微信小程序中利用同声传译实现语音识别功能
    这篇文章给大家介绍怎么在微信小程序中利用同声传译实现语音识别功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。// app.json{    ... &nbs...
    99+
    2023-06-15
  • win10系统如何使用语音识别功能
    这篇文章主要介绍了win10系统如何使用语音识别功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、右键点击开始菜单,在弹出的菜单中,选择“控制面板”。二、在控制面板中,以...
    99+
    2023-06-28
  • ubuntu中如何用脚本执行程序
    在Ubuntu中,你可以通过编写一个脚本来执行程序。以下是一个简单的示例:1. 创建一个新的文本文件,命名为`run.sh`(你可以...
    99+
    2023-10-10
    ubuntu
  • 如何进行ASP.NET MVC应用程序执行过程的分析
    本篇文章给大家分享的是有关如何进行ASP.NET MVC应用程序执行过程的分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。创建一个简单的ASP.NET MVC应用程序ASP....
    99+
    2023-06-17
  • 如何在javascript中停止执行函数
    本篇文章给大家分享的是有关如何在javascript中停止执行函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在javascript中如果要终止一个函数的用return即可,...
    99+
    2023-06-14
  • 计算机能不能直接识别执行用汇编语言编写的程序
    这篇文章给大家分享的是有关计算机能不能直接识别执行用汇编语言编写的程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。不能。用汇编语言编写的程序,计算机是不能直接识别和执行的;必须先把汇编语言源程序翻译成机器语言程...
    99+
    2023-06-14
  • PHP中如何进行基于深度学习的语音识别和合成?
    在过去的几十年中,语音技术一直在飞速发展,它为人们提供了极大的便利,例如语音识别、语音合成等。而今,随着AI技术的快速发展,深度学习成为了语音技术的主流方法,并逐渐取代了传统的基于规则的语音识别和合成方法。而PHP作为一种广泛使用的编程语言...
    99+
    2023-05-20
    深度学习 PHP 语音识别和合成
  • spark应用程序如何在Java项目中运行
    这篇文章将为大家详细讲解有关spark应用程序如何在Java项目中运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如下所示:package org.shirdrn.spark.job;im...
    99+
    2023-05-31
    java spark ava
  • 如何将PHP应用程序打包成可执行文件并在Linux上运行?
    PHP是一种被广泛使用的编程语言,它的优点在于易于学习、易于使用和灵活性。但是,PHP应用程序在Linux上运行时需要安装PHP解释器和相关依赖项。如果你想将PHP应用程序打包成可执行文件,这篇文章会为你提供一些有用的指导。 一、安装Pha...
    99+
    2023-11-06
    linux 打包 bash
  • 微信小程序使用同声传译实现语音识别功能
      我使用同声传译语音识别功能是为了实现微信小程序首页的语音搜索功能,如果你也是那么恭喜你,你可以ctrl+c、ctrl+v再改一改,如果你不是那么你也不要着急的走可以看完我的文章会...
    99+
    2024-04-02
  • java中如何让线程顺序执行
    下面由java入门程序栏目为大家介绍如何在java中让线程顺序执行,希望对大家有所帮助!我们需要完成这样一个应用场景:早上;2.测试人员、产品经理、开发人员陆续的来公司上班;3.产品经理规划新需求;4.开发人员开发新需求功能;5.测试人员测...
    99+
    2020-07-30
    java教程 java 线程 顺序执行
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作