使用 JavaScript 和语音识别 API 构建语音控制应用程序


近年来,语音控制应用程序越来越受欢迎,使用户能够通过语音而不是传统的输入方式与技术交互。JavaScript 作为 Web 开发中最广泛使用的编程语言之一,为构建此类应用程序提供了一个强大的平台。在本文中,我们将探讨如何利用 JavaScript 和语音识别 API 来创建语音控制应用程序。我们将深入探讨设置语音识别、捕获和处理用户语音以及在应用程序中实现语音命令的过程。

设置语音识别

在开始构建我们的语音控制应用程序之前,我们需要设置语音识别功能。幸运的是,现代 Web 浏览器提供了对 Web 语音 API 的内置支持,允许开发人员利用语音识别功能。

让我们看看如何在 JavaScript 中初始化语音识别 API -

// Check browser support for speech recognition
if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {
   // Create a new instance of the SpeechRecognition object
   const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();

   // Configure recognition settings
   recognition.continuous = true; // Enable continuous speech recognition
   recognition.interimResults = false; // Do not return interim results

   // Event handler for when speech is recognized
   recognition.onresult = (event) => {
      const result = event.results[event.results.length - 1][0].transcript;
      console.log('Recognized speech:', result);
   };

   // Start speech recognition
   recognition.start();
} else {
   console.log('Speech recognition not supported');
}

解释

在上面的代码片段中,我们首先通过检查 SpeechRecognition 或 webkitSpeechRecognition 对象的存在来检查浏览器是否支持语音识别。如果支持,我们创建一个新的 SpeechRecognition 对象实例并配置其设置。我们将 continuous 设置为 true 以允许连续语音识别,并将 interimResults 设置为 false 以仅接收最终结果。最后,我们在 onresult 上定义了一个事件处理程序来处理识别的语音。

如果浏览器支持语音识别,它将开始侦听语音输入。识别语音后,它将在控制台中记录识别的语音。

捕获和处理用户语音

现在我们已经设置了语音识别,我们需要在我们的语音控制应用程序中捕获和处理用户语音。我们之前定义的 onresult 事件处理程序为我们提供了识别的语音。

让我们扩展之前的代码以捕获用户语音并对其进行处理 -

// ...

// Event handler for when speech is recognized
recognition.onresult = (event) => {
   const result = event.results[event.results.length - 1][0].transcript;
   console.log('Recognized speech:', result);

   // Process the recognized speech
   processSpeech(result);
};

// Function to process the recognized speech
function processSpeech(speech) {
   // Perform actions based on the recognized speech
   if (speech.includes('hello')) {
      console.log('User greeted with "hello"');
      // Perform greeting action
      // ...
   } else if (speech.includes('search')) {
      console.log('User wants to search');
      // Perform search action
      // ...
   } else {
      console.log('Unrecognised speech');
   }
}

解释

在更新后的代码片段中,我们添加了一个 processSpeech 函数来处理识别的语音。在这个函数内部,我们可以根据识别语音的内容执行各种操作。在示例中,我们检查语音是否包含“hello”或“search”一词,并记录相应的邮件。您可以根据应用程序的要求自定义操作。

假设用户说出“hello”或“search”一词,相应的日志消息将出现在控制台中。如果识别的语音与任何预定义短语不匹配,它将记录“无法识别的语音”。

实现语音命令

// ...

// Event handler for when speech is recognized
recognition.onresult = (event) => {
   const result = event.results[event.results.length - 1][0].transcript;
   console.log('Recognized speech:', result);

   // Process the recognized speech
   processSpeech(result);
};

// Function to process the recognized speech
function processSpeech(speech) {
   // Perform actions based on the recognized speech
   if (speech.includes('play')) {
      console.log('User wants to play');
      // Perform play action
      // ...
   } else if (speech.includes('stop')) {
      console.log('User wants to stop');
      // Perform stop action
      // ...
   } else if (speech.includes('volume up')) {
      console.log('User wants to increase volume');
      // Perform volume up action
      // ...
   } else if (speech.includes('volume down')) {
      console.log('User wants to decrease volume');
      // Perform volume down action
      // ...
   } else {
      console.log('Unrecognised speech');
   }
}

解释

在更新后的代码片段中,我们扩展了 processSpeech 函数以包含诸如“播放”、“停止”、“音量增大”和“音量减小”之类的语音命令。当识别的语音与这些命令中的任何一个匹配时,将执行相应的操作。您可以根据应用程序的要求自定义语音命令和操作。

如果识别的语音与任何语音命令匹配,相应的日志消息将出现在控制台中。例如,如果用户说“播放”,控制台将记录“用户想要播放”。如果识别的语音与任何预定义命令不匹配,它将记录“无法识别的语音”。

结论

语音控制应用程序为用户提供了一种直观且便捷的方式来与技术交互。通过利用 JavaScript 和语音识别 API,开发人员可以构建功能强大的语音控制应用程序。在本文中,我们探讨了设置语音识别、捕获和处理用户语音以及在 JavaScript 中实现语音命令的过程。我们学习了如何初始化语音识别 API、捕获用户语音、根据预定义短语对其进行处理以及相应地执行操作。有了这些知识,您现在就可以开始构建自己的语音控制应用程序并提供无缝的用户体验。

总之,JavaScript 和语音识别 API 的结合为语音控制应用程序开辟了一个全新的可能性世界。无论您是开发虚拟助手、免提控制系统还是任何其他语音驱动的应用程序,JavaScript 和语音识别都提供了创建引人入胜的用户体验所需的工具。

更新于:2023-07-25

430 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告