mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-02-24 16:35:55 +08:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
import time
|
|
|
|
import edge_tts
|
|
import asyncio
|
|
|
|
from bridge.reply import Reply, ReplyType
|
|
from common.log import logger
|
|
from common.tmp_dir import TmpDir
|
|
from voice.voice import Voice
|
|
|
|
|
|
class EdgeVoice(Voice):
|
|
|
|
def __init__(self):
|
|
'''
|
|
# 普通话
|
|
zh-CN-XiaoxiaoNeural
|
|
zh-CN-XiaoyiNeural
|
|
zh-CN-YunjianNeural
|
|
zh-CN-YunxiNeural
|
|
zh-CN-YunxiaNeural
|
|
zh-CN-YunyangNeural
|
|
# 地方口音
|
|
zh-CN-liaoning-XiaobeiNeural
|
|
zh-CN-shaanxi-XiaoniNeural
|
|
# 粤语
|
|
zh-HK-HiuGaaiNeural
|
|
zh-HK-HiuMaanNeural
|
|
zh-HK-WanLungNeural
|
|
# 湾湾腔
|
|
zh-TW-HsiaoChenNeural
|
|
zh-TW-HsiaoYuNeural
|
|
zh-TW-YunJheNeural
|
|
'''
|
|
self.voice = "zh-CN-YunjianNeural"
|
|
|
|
def voiceToText(self, voice_file):
|
|
pass
|
|
|
|
async def gen_voice(self, text, fileName):
|
|
communicate = edge_tts.Communicate(text, self.voice)
|
|
await communicate.save(fileName)
|
|
|
|
def textToVoice(self, text):
|
|
fileName = TmpDir().path() + "reply-" + str(int(time.time())) + "-" + str(hash(text) & 0x7FFFFFFF) + ".mp3"
|
|
|
|
asyncio.run(self.gen_voice(text, fileName))
|
|
|
|
logger.info("[EdgeTTS] textToVoice text={} voice file name={}".format(text, fileName))
|
|
return Reply(ReplyType.VOICE, fileName)
|