📅  最后修改于: 2023-12-03 14:52:27.634000             🧑  作者: Mango
在 Node.js 中,我们可以使用一些开源的工具库和 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
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/