Closed prairiewolf11 closed 1 year ago
能帮改改下面的代码不?这是用chatgpt写的。 from typing import Optional import edge_tts import asyncio
class EdgeTTS(AbstractTTS): """ 使用edge-TTS模块语音合成 """ SLUG = "edge-tts"
def __init__(self, voice: Optional[str] = 'zh-CN-XiaoxiaoNeural',
rate: Optional[str] = '-4%',
volume: Optional[str] = '+0%') -> None:
super().__init__()
self.voice = voice
self.rate = rate
self.volume = volume
async def get_speech(self, phrase: str) -> Optional[str]:
audiofile = self._tmp_file()
try:
tts = edge_tts.Communicate(text=phrase, voice=self.voice, rate=self.rate, volume=self.volume)
await tts.save(audiofile)
return audiofile
except Exception as e:
self.logger.error(f"{self.SLUG} error: {str(e)}")
return None
3.5.1 版本已发布,增加了 edge-tts 的支持。详见:https://github.com/wzpan/wukong-robot/discussions/243
感谢感谢
import edge_tts import asyncio
voice = 'zh-CN-XiaoxiaoNeural' rate = '-4%' volume = '+0%' async def edgeTTS(TEXT,audiofile): tts = edge_tts.Communicate(text = TEXT,voice = voice,rate = rate,volume=volume) await tts.save(audiofile) 由于这个tts可以无限使用,所以没必要保存成音频文件,不用考虑是否命中缓存,接收到音频流就直接送去播放。这样能减少写入。