📜  如何在 Node.js 中将文本转换为语音?(1)

📅  最后修改于: 2023-12-03 14:52:27.634000             🧑  作者: Mango

如何在 Node.js 中将文本转换为语音?

在 Node.js 中,我们可以使用一些开源的工具库和 API 来将文本转换为语音。本文将介绍两种常用的方法。

1. 使用 Google Cloud Text-to-Speech API

Google Cloud Text-to-Speech API 是一款强大的语音合成 API,它可以将文本转换为多种音频格式,支持多种语言,并且支持自定义语音模型。使用 Google Cloud Text-to-Speech API,你需要在 Google Cloud Platform 上创建一个项目,并启用 Text-to-Speech API 服务。接下来,你需要安装 @google-cloud/text-to-speech 包:

npm install @google-cloud/text-to-speech

然后,你可以按如下方式使用它:

const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');

const client = new textToSpeech.TextToSpeechClient();

async function textToSpeech(text) {
  const request = {
    input: { text },
    voice: { languageCode: 'en-US', ssmlGender: 'FEMALE' },
    audioConfig: { audioEncoding: 'MP3' },
  };

  const [response] = await client.synthesizeSpeech(request);
  const writeFile = fs.createWriteStream('output.mp3');
  writeFile.write(response.audioContent, 'binary');
  writeFile.end();
}

textToSpeech('Hello, World!');

上面的代码将文本 "Hello, World!" 转换成了 MP3 格式语音,并将语音保存到了文件 "output.mp3" 中。

更多使用文档,请参考官方文档:https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries

2. 使用 Say.js

Say.js 是另一种常用的将文本转换为语音的工具库。它底层使用 Mac OS X 和 Linux 上的 say 命令来生成语音,并提供了更加简单的 API。你可以使用 npm 安装:

npm install say

接下来,我们可以这样使用它:

const say = require('say');

say.speak(null, 'Hello, World!');

上面的代码将文本 "Hello, World!" 转换成语音并播放出来。你还可以使用以下代码将文本转换成语音并保存到文件中:

const say = require('say');

say.export('Hello, World!', 'Alex', 0.5, 'output.aiff', () => {
  console.log('Audio file saved.');
});

更多使用文档,请参考官方文档:https://github.com/marak/say.js/