本文概述
- 要求
- 实现
say模块不依赖任何远程服务, 因为它将使用系统的本机TTS服务(带有Festival的Linux, 带有AppleScript的MacOS和Mac OS X文本语音转换以及带有SAPI的Windows)。
要求为了将文本转换为语音, 我们将依赖say模块。 Say是用于节点的TTS(文本到语音)库, 用于将文本从node.js发送到扬声器。
要安装此模块, 请在终端中执行以下命令:
npm install say
安装后, 你将可以使用require(” say” )访问此模块。你可以在Github的官方存储库中了解有关say模块的更多信息。
实现say模块是一个提供3种方法的对象(取决于操作系统, 某些功能将无法正常工作或可能不可用):
说话功能
语音功能可让你轻松合成文本。它将文本作为第一个参数, 将第二个参数作为检查任何错误(如果有)和结束事件的函数:
var say = require('say');
say.speak('Hello, how are you today?', (err) =>
{if (err) {return console.error(err);
}console.log('Text has been spoken.');
});
在MacOS和Linux中, 你可以指定合成速度以及提供第一个和第三个参数的声音:
var say = require('say');
say.speak('Hello, how are you', 'Alex', 0.5, (err) =>
{if (err) {return console.error(err);
}console.log('Text has been spoken.');
});
请注意, 在Windows中, 这些选项不可用。
停止功能
你可以使用say.stop方法停止当前任何语音说话:
var say = require('say');
say.speak('Hello, how are you', 'Alex', 0.5, (err) =>
{if (err) {return console.error(err);
}console.log('Text has been spoken.');
});
say.stop();
汇出功能
导出功能使你可以将文本合成导出到.wav文件。
var say = require("say");
var filename = "myaudio.wav"say.export("I'm sorry, Dave.", 'Cellos', 0.75, filename, function(err) {if (err) {return console.error(err);
}console.log(`Text has been saved to ${filename}`);
});
Windows注意事项
say函数中的语音参数和速度不可用, 这意味着它将使用默认的系统语音, 而忽略语音和速度参数。
导出功能均不可用。
OSX的注意事项
在Mac OS中, 你可以将声音更改为:
女性的声音
艾格尼丝, 凯西, 公主, 维琪, 维多利亚
男性声音
阿尔伯特, 亚历克斯, 布鲁斯, 弗雷德, 少年, 拉尔夫
杂音
坏消息, Bahh, 钟声, 波音, 气泡, 大提琴, 精神错乱, 好消息, 歇斯底里, 管风琴, 三叉戟, 耳语, Zarvox。
Linux注释
要在Linux中使用Node.js合成文本, 你将选择Festival。节日的声音有时需要单独安装-你可以通过以交互模式启动Festival并键入(voice_, 然后按TAB键来检查可用的声音。然后输入要尝试的声音的名称, 减去括号。 , 然后将其传递给say.js, 例如:
var say = require("say");
var voiceName = "voice_nick1"say.speak("Luke, I am your father", voiceName, 0.75 , (err) =>
{if (err) {return console.error(err);
}console.log(`Text with the voice ${voice}`);
});
【如何在Node.js中将文本转换(合成)为语音】编码愉快!
推荐阅读
- 如何使用Node.js中的文件系统(fs)模块创建文件
- CRM如何提高IT公司的利率
- 如何在Node.js中使用nodemailer发送电子邮件(gmail,Outlook和Zoho)
- 最新的Zoom安全漏洞(你需要了解的内容)
- 地理编码将如何塑造未来的技术和服务
- 使你的网站闪电般飞速的10条性能提示
- 详解Apache Dubbo的SPI实现机制
- Kubernetes + Spring Cloud 集成链路追踪 SkyWalking
- 如何用C++自己实现mysql数据库的连接池()