以前公司下达了一个需求,要求用语音做广播,因为广播里面包含姓名,所以不能难以直接录制,需要使用合成语音。
一开始考虑到时间以及优先级问题,这边使用了百度的合成语音。
但是百度语音相对僵硬,而且没有感情,效果不甚满意。
不久前时间相对充沛,这边就使用了觉得最完美的方案——使用微软云的人工智能合成语音。
因为这个语音可以设置感情,没有机器合成那种僵硬的感觉,可以说是比真人还真人。
微软云合成语音demo网站:https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/
感觉确实有需要的话,接下来就应该创建微软云账号,开始使用了,可以参考这个视频:https://www.bilibili.com/video/av670457802
不过要注意一点,创建微软云账号,需要绑定一张visa卡。如果没有的话,可以淘宝或者申请微软云学生账号。
申请微软云学生账号:https://www.daniao.org/6693.html
创建好微软云合成语音服务之后,就可以直接使用了。
文档地址:https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/get-started-text-to-speech?tabs=script%2Cwindowsinstall&pivots=programming-language-javascript
收费:
每个月都有25万字的合成额度,如果需求量不大的话,已经够用了。如果需求量大,可以将通用的语音保存到服务器,将不通用项,如姓名,以单字的形式,请求后再存入服务器。每次访问时,先检查服务器存不存在这个字,如没有再请求api接口。
下面是简单使用的具体代码:
<script type="text/javascript">
const sdk = SpeechSDK
var synthesizer = null;
/**
* 初始化微软语音
*/
function synthesizeMsSpeech() {
const speechConfig = sdk.SpeechConfig.fromSubscription("你的密匙", "你的地区,如 eastus 不能输入中文");
synthesizer &