📜  使用 javascript 的文本到语音(1)

📅  最后修改于: 2023-12-03 15:36:29.957000             🧑  作者: Mango

使用 JavaScript 的文本转语音

在本文中,我们将介绍如何使用 JavaScript 将文本转换为语音。这项技术能够让你的网站更加交互与具有吸引力。通过一些简单的代码,将很容易地把文字转换为语音。

使用浏览器的 SpeechSynthesis API

SpeechSynthesis API是一个浏览器的语音合成API,它允许我们将纯文字转换成自然语音。我们可以通过以下方式调用API:

const synth = window.speechSynthesis;

我们需要先创建一个全局的中央控制器对象,如上所示。这个对象包含了我们所有需要的方法和属性。

接下来,我们需要准备将要转换的语音文本。

const greeting = new SpeechSynthesisUtterance('Hi there!');

然后,我们需要将上面的文本传入到 SpeechSynthesisUtterance 函数中。

最后,我们通过调用让浏览器阅读文本的函数来实现:

synth.speak(greeting);

最终的代码将是这样的:

const synth = window.speechSynthesis;
const greeting = new SpeechSynthesisUtterance('Hi there!');
synth.speak(greeting);

这将会让浏览器朗读出“ Hi there! ”。

使用 Web Speech API

另外一个处理语音的API是Web Speech API。它是一套支持语音识别和语音合成的API,实现了比 SpeechSynthesis API 更加高级和先进的功能。

在要使用 Web Speech API 之前,需要确保浏览器中已经启用了语音识别和语音转换功能。接下来,让我们看一下一个简单例子:

const synth = window.speechSynthesis;
let inputTxt = 'Hello there';

let msg = new SpeechSynthesisUtterance();
msg.text = inputTxt;
msg.lang = 'en-US';    
synth.speak(msg);

这个例子使用了与SpeechSynthesis相同的语音对话API,但使用时需要做以下的修改:

  1. 手动创建SpeechSynthesisUtterance对象。
  2. 给输入文本赋值。
  3. 设定哪种语音识别语言使用。
总结

上述2种方法都是将文本转换为语音的可行方案。同时,不同浏览器可能支持或不支持不同的语音技术。所以在实现语音功能时,需要确保浏览器兼容性。这两个API有着良好的兼容性,可以在大多数主流浏览器上使用。

Markdown 代码片段如下所示:

```javascript
const synth = window.speechSynthesis;
const greeting = new SpeechSynthesisUtterance('Hi there!');
synth.speak(greeting);
```
```javascript
const synth = window.speechSynthesis;
let inputTxt = 'Hello there';
let msg = new SpeechSynthesisUtterance();
msg.text = inputTxt;
msg.lang = 'en-US';
synth.speak(msg);
```

Enjoy your coding!