动态设置语音朗读内容、发音、讲话风格的功能:
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 | 表达严肃和命令的语气。 说话者的声音通常比较僵硬,节奏也不那么轻松。 |
复制以下的代码粘贴到神奇弹幕中:
[ { "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" } ]