olivebot/tts/tts_voice.py
guo zebin 4cfad5ae0f 年翻更新
- 全新ui
- 全面优化websocket逻辑,提高数字人和ui连接的稳定性及资源开销
- 全面优化唤醒逻辑,提供稳定的普通唤醒模式和前置词唤醒模式
- 优化拾音质量,支持多声道麦克风拾音
- 优化自动播放服务器的对接机制,提供稳定和兼容旧版ue工程的对接模式
- 数字人接口输出机器人表情,以适应新fay ui及单片机的数字人表情输出
- 使用更高级的音频时长计算方式,可以更精准控制音频播放完成后的逻辑
- 修复点击关闭按钮会导致程序退出的bug
- 修复没有麦克风的设备开启麦克风会出错的问题
- 为服务器主机地址提供配置项,以方便服务器部署
2024-10-26 11:34:55 +08:00

96 lines
2.4 KiB
Python

from enum import Enum
class EnumVoice(Enum):
XIAO_XIAO_NEW = {
"name": "晓晓(azure)",
"voiceName": "zh-CN-XiaoxiaoMultilingualNeural",
"styleList": {
"angry": "angry",
"lyrical": "lyrical",
"calm": "gentle",
"assistant": "affectionate",
"cheerful": "cheerful"
}
}
XIAO_XIAO = {
"name": "晓晓",
"voiceName": "zh-CN-XiaoxiaoNeural",
"styleList": {
"angry": "angry",
"lyrical": "lyrical",
"calm": "gentle",
"assistant": "affectionate",
"cheerful": "cheerful"
}
}
YUN_XI = {
"name": "云溪",
"voiceName": "zh-CN-YunxiNeural",
"styleList": {
"angry": "angry",
"lyrical": "disgruntled",
"calm": "calm",
"assistant": "assistant",
"cheerful": "cheerful"
}
}
YUN_JIAN = {
"name": "云健",
"voiceName": "zh-CN-YunjianNeural",
"styleList": {
"angry": "angry",
"lyrical": "disgruntled",
"calm": "calm",
"assistant": "assistant",
"cheerful": "cheerful"
}
}
XIAO_YI = {
"name": "晓伊",
"voiceName": "zh-CN-XiaoyiNeural",
"styleList": {
"angry": "angry",
"lyrical": "lyrical",
"calm": "gentle",
"assistant": "affectionate",
"cheerful": "cheerful"
}
}
YUN_YANG = {
"name": "云阳",
"voiceName": "zh-CN-YunyangNeural",
"styleList": {
"angry": "angry",
"lyrical": "lyrical",
"calm": "gentle",
"assistant": "affectionate",
"cheerful": "cheerful"
}
}
YUN_XIA = {
"name": "云夏",
"voiceName": "zh-CN-YunxiaNeural",
"styleList": {
"angry": "angry",
"lyrical": "lyrical",
"calm": "gentle",
"assistant": "affectionate",
"cheerful": "cheerful"
}
}
def get_voice_list():
return [EnumVoice.XIAO_XIAO_NEW, EnumVoice.YUN_XI, EnumVoice.XIAO_XIAO, EnumVoice.YUN_JIAN, EnumVoice.XIAO_YI, EnumVoice.YUN_YANG, EnumVoice.YUN_XIA]
def get_voice_of(name):
for voice in get_voice_list():
voice_data = voice.value
if voice_data["name"] == name:
return voice
return None