资料教程

【神奇弹幕】微软TTS语音朗读

时间: 2022-03-04 12:09:23

功能介绍动态设置语音朗读内容、发音、讲话风格的功能:1. 非常逼真自然的语音合成,支持国际上绝大部分语言2. 不同的身份(主播/房管/舰长/普通用户)可以同时拥有不同的发音人、风格3. 可以通过弹幕/礼物/其他自定义操作来设置指定用户的专属发音人4. 朗读发送弹幕的用户昵称,可以使用不同的发音风格5. 统一用户连续发送的弹幕,不重复朗读昵称6. 通过语音合成标记语言SSML,微调音节、发音、语速、音量以及其他属性下载下载地址:http://pan.iwxyi.com/#s/7W3YlRNg更新方式:目前新版(4.4.3)尚未发布,下载文件夹“每夜版”中的 exe 到旧版目录,双击打开需关闭程序自带的“朗读弹幕”开关,否则会有重复语音导入代码:1. 复制本页底部的代码2. 神奇弹幕扩展页右上角菜单中的“粘贴代码片段”    3. 配置设置页中的语音,选择微软,并填入地区码和订阅码    共享秘钥地区码:southeastasia订阅码:edca5995ff5e492ea1f78f94af0bb093发音人列表SSML中的发音人需要使用前缀“zh-CN-”和后缀“Neural”,例如:通过弹幕设置发音人的代码中已自动添加前后缀,只需发送英文名即可。Xiaoxiao        晓晓Yunyang        云扬Xiaochen       晓辰Xiaohan         晓涵Xiaomo          晓墨Xiaoqiu          晓秋Xiaoriu           晓睿Xiaoshuang   晓双Xiaoxuan       晓萱Xiaoyan         晓颜Xiaoyou         晓悠Yunxi             云希Yunye            云野讲话风格列表不是所有角色都能使用讲话风格,也不是有讲话风格的角色能使用所有风格,具体可参考官方试听的选项:Style说明affectionate以较高的音调和音量表达温暖而亲切的语气。 说话者处于吸引听众注意力的状态。 说话者的个性往往是讨喜的。angry表达生气和厌恶的语气。assistant以热情而轻松的语气对数字助理讲话。calm以沉着冷静的态度说话。 语气、音调和韵律与其他语音类型相比要统一得多。chat表达轻松随意的语气。cheerful表达积极愉快的语气。customerservice以友好热情的语气为客户提供支持。depressed调低音调和音量来表达忧郁、沮丧的语气。disgruntled表达轻蔑和抱怨的语气。 这种情绪的语音表现出不悦和蔑视。embarrassed在说话者感到不舒适时表达不确定、犹豫的语气。empathetic表达关心和理解。fearful以较高的音调、较高的音量和较快的语速来表达恐惧、紧张的语气。 说话人处于紧张和不安的状态。gentle以较低的音调和音量表达温和、礼貌和愉快的语气。lyrical以优美又带感伤的方式表达情感。narration-professional以专业、客观的语气朗读内容。newscast以正式专业的语气叙述新闻。newscast-casual以通用、随意的语气发布一般新闻。newscast-formal以正式、自信和权威的语气发布新闻。sad表达悲伤语气。serious表达严肃和命令的语气。 说话者的声音通常比较僵硬,节奏也不那么轻松。官方SSML文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp代码片段复制以下的代码粘贴到神奇弹幕中:[     {         "anchor_key": "神奇弹幕:AutoReply",         "enabled": true,         "key": "设置发音人\\s*(\\S*)",         "reply": "/// 设置微软语音发音人,使用英文名字\n// Xiaoxiao晓晓  Yunyang云扬  Xiaochen晓辰  Xiaohan晓涵  Xiaomo晓墨\n// Xiaoqiu晓秋  Xiaoriu晓睿  Xiaoshuang晓双  Xiaoxuan晓萱  Xiaoyan晓颜\n// Xiaoyou晓悠  Yunxi云希  Yunye云野\n>setValue(voice/speaker_%uid%, zh-CN-%$1%Neural)"     },     {         "anchor_key": "神奇弹幕:AutoReply",         "enabled": true,         "key": "设置发音风格\\s*(\\S*)",         "reply": "/// 指定讲话风格,不是所有角色都能用\n// affectionate亲切  angry生气  assistant热情轻松  calm沉着冷静  chat轻松随意\n// cheerful愉快  customerservice友好 depressed忧郁  disgruntled轻蔑  embarrassed犹豫\n// empathetic关心  fearful紧张  gentle温和  lyrical优美感伤  narration-professional朗读\n// newscast正式  newscast-casual通用随意  sad悲伤  serious严肃\n>setValue(voice/style_%uid%, %$1%)"     },     {         "anchor_key": "神奇弹幕:AutoReply",         "enabled": false,         "key": "设置发音角色扮演\\s*(\\S+)",         "reply": "/// 指定讲话角色扮演,使语音模拟不同的年龄和性别(暂不可用)\n// 仅这些角色可用:Xiaomo晓墨  Xiaoxuan晓萱  Yunxi云希  Yunye云野\n// 参数列表:\n// 模拟男女孩:Girl  Boy\n// 模拟年轻男女:YoungAdultFemale  YoungAdultMale\n// 模拟年长男女:OlderAdultFemale  OlderAdultMale\n// 模拟老年男女:SeniorFemale  SeniorMale\n>setValue(voice/role_%uid%, %$1%)"     },     {         "anchor_key": "神奇弹幕:AutoReply",         "enabled": true,         "key": ".+",         "reply": "/// 自定义弹幕朗读,仅限微软语音\n>speakTextSSML(<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"https://www.w3.org/2001/mstts\" xml:lang=\"zh-CN\">\\\n     <voice name=\"%>getEventExecutionResult(GET_VOICE_SPEAKER)%\">\\\n        %>getEventExecutionResult(GET_VOICE_USER)%\\\n        <mstts:express-as style=\"%>getEventExecutionResult(GET_VOICE_STYLE)%\" >\\\n            <prosody rate=\"0%\" pitch=\"0%\">\\\n                %text%\\\n            </prosody>\\\n        </mstts:express-as>\\\n     </voice>\\\n</speak>)"     },     {         "action": "/// 测试发音人\n>speakTextSSML(<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"https://www.w3.org/2001/mstts\" xml:lang=\"zh-CN\">\\\n    <voice name=\"zh-CN-XiaomoNeural\">\\\n        女儿看见父亲走了进来,问道:\\\n        <mstts:express-as role=\"YoungAdultFemale\" style=\"calm\">\\\n            “您来的挺快的,怎么过来的?”\\\n        </mstts:express-as>\\\n        父亲放下手提包,说:\\\n        <mstts:express-as role=\"OlderAdultMale\" style=\"calm\">\\\n            “刚打车过来的,路上还挺顺畅。”\\\n        </mstts:express-as>\\\n    </voice>\\\n</speak>)",         "anchor_key": "神奇弹幕:EventAction",         "enabled": false,         "event": ""     },     {         "action": "// 自定义的语音发音人\n[%{voice/speaker_%uid%}%]****%{voice/speaker_%uid%}%\n// 设置不同身份的默认语音\n[%is_up%]***zh-CN-XiaoxiaoNeural // 主播自己\n[%guard%]**zh-CN-YunyangNeural // 舰长\n[%admin%]*zh-CN-XiaoyouNeural // 房管\nzh-CN-XiaoyanNeural // 普通用户",         "anchor_key": "神奇弹幕:EventAction",         "enabled": true,         "event": "GET_VOICE_SPEAKER"     },     {         "action": "// 自定义的语音风格\n[%{voice/style_%uid%}%]****%{voice/style_%uid%}%\n// 设置不同身份的默认语音\n[%is_up%]***lyrical // 主播自己\n[%guard%]**affectionate // 舰长\n[%admin%]*cheerful // 房管\nnewscast-casual // 普通用户",         "anchor_key": "神奇弹幕:EventAction",         "enabled": true,         "event": "GET_VOICE_STYLE"     },     {         "action": "// 是连续同一个用户,不重复朗读昵称\n[%{voice/last_user}% == %uid%]***\n// 返回用户昵称\n>setValue(voice/last_user, %uid%)\\n\\\n        <mstts:express-as style=\"lyrical\" >\\\n            <prosody rate=\"0%\" pitch=\"0%\">\\\n                %ai_name%说:\\\n            </prosody>\\\n        </mstts:express-as>\\\n        <break strength=\"medium\" />",         "anchor_key": "神奇弹幕:EventAction",         "enabled": true,         "event": "GET_VOICE_USER"     } ]