feat: 升级到 playsound3 以替代问题频出的 playsound
This commit is contained in:
@@ -160,5 +160,11 @@
|
|||||||
"ident": "屈平正道直行, 竭忠尽智以事其君, 谗人间之, 可谓穷矣.",
|
"ident": "屈平正道直行, 竭忠尽智以事其君, 谗人间之, 可谓穷矣.",
|
||||||
"added": 1777847825,
|
"added": 1777847825,
|
||||||
"tags": []
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repo_path": "cngk-t",
|
||||||
|
"ident": "上称帝喾, 下道齐桓, 中述汤武, 以刺世事.",
|
||||||
|
"added": 1777874192,
|
||||||
|
"tags": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -30,10 +30,7 @@ tts-edgetts = [
|
|||||||
"edge-tts>=7.2.8", # 微软 TTS
|
"edge-tts>=7.2.8", # 微软 TTS
|
||||||
]
|
]
|
||||||
llm = ["openai>=2.32.0"]
|
llm = ["openai>=2.32.0"]
|
||||||
audio-playsound = [
|
audio-playsound = ["playsound3>=3.3.1"]
|
||||||
"playsound3==3.3.1",
|
|
||||||
#"pygobject>=3.56.2", # playsound 依赖它
|
|
||||||
]
|
|
||||||
dev = [ # 调试所需依赖
|
dev = [ # 调试所需依赖
|
||||||
"zmq>=0.0.0", # 用于 ZMQ 远程调试服务器, 在 linux 上建议先安装 libzmq
|
"zmq>=0.0.0", # 用于 ZMQ 远程调试服务器, 在 linux 上建议先安装 libzmq
|
||||||
"pytest>=8.0.0", # 用于普通测试
|
"pytest>=8.0.0", # 用于普通测试
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
edge-tts==7.0.2
|
|
||||||
openai==1.0.0
|
|
||||||
playsound==1.2.2
|
|
||||||
tabulate>=0.9.0
|
|
||||||
textual==7.0.0
|
|
||||||
toml==0.10.2
|
|
||||||
transitions==0.9.3
|
|
||||||
@@ -156,11 +156,11 @@ class MemScreen(Screen):
|
|||||||
|
|
||||||
path = Path(config_var.get()["global"]["paths"]["data"]) / "cache" / "voice"
|
path = Path(config_var.get()["global"]["paths"]["data"]) / "cache" / "voice"
|
||||||
path = path / f"{get_md5(self.atom.registry['nucleon']["tts_text"])}.wav"
|
path = path / f"{get_md5(self.atom.registry['nucleon']["tts_text"])}.wav"
|
||||||
|
logger.debug(str(path))
|
||||||
if path.exists():
|
if path.exists():
|
||||||
play_by_path(path)
|
play_by_path(path)
|
||||||
else:
|
else:
|
||||||
from heurams.services.tts_service import convertor
|
from heurams.services.tts_service import convertor
|
||||||
|
|
||||||
convertor(self.atom.registry["nucleon"]["tts_text"], path)
|
convertor(self.atom.registry["nucleon"]["tts_text"], path)
|
||||||
play_by_path(path)
|
play_by_path(path)
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
"""通用音频适配器
|
"""通用音频适配器
|
||||||
基于 playsound 库的音频播放器, 在绝大多数 python 环境上提供音频服务
|
基于 playsound3 的音频播放器, 在绝大多数 python 环境上提供音频服务
|
||||||
注意: 在未配置 pulseaudio 的 termux 不可用
|
注意: 在 termux 不可用
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
||||||
import playsound
|
import playsound3
|
||||||
|
|
||||||
from heurams.services.logger import get_logger
|
from heurams.services.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def play_by_path(path: pathlib.Path):
|
def play_by_path(path: pathlib.Path):
|
||||||
logger.debug("playsound_audio.play_by_path: 开始播放 %s", path)
|
logger.debug("playsound_audio.play_by_path: 开始播放 %s", path)
|
||||||
try:
|
try:
|
||||||
playsound.playsound(str(path))
|
playsound3.playsound(str(path))
|
||||||
logger.debug("播放完成: %s", path)
|
logger.debug("播放完成: %s", path)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("播放失败: %s, 错误: %s", path, e)
|
logger.error("播放失败: %s, 错误: %s", path, e)
|
||||||
raise
|
|
||||||
|
|||||||
2
uv.lock
generated
2
uv.lock
generated
@@ -493,7 +493,7 @@ requires-dist = [
|
|||||||
{ name = "heurams", extras = ["tts-edgetts"], marker = "extra == 'all'" },
|
{ name = "heurams", extras = ["tts-edgetts"], marker = "extra == 'all'" },
|
||||||
{ name = "heurams", extras = ["tts-edgetts"], marker = "extra == 'basic'" },
|
{ name = "heurams", extras = ["tts-edgetts"], marker = "extra == 'basic'" },
|
||||||
{ name = "openai", marker = "extra == 'llm'", specifier = ">=2.32.0" },
|
{ name = "openai", marker = "extra == 'llm'", specifier = ">=2.32.0" },
|
||||||
{ name = "playsound3", marker = "extra == 'audio-playsound'", specifier = "==3.3.1" },
|
{ name = "playsound3", marker = "extra == 'audio-playsound'", specifier = ">=3.3.1" },
|
||||||
{ name = "psutil", marker = "extra == 'interface'", specifier = ">=7.2.2" },
|
{ name = "psutil", marker = "extra == 'interface'", specifier = ">=7.2.2" },
|
||||||
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
||||||
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.0.0" },
|
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.0.0" },
|
||||||
|
|||||||
Reference in New Issue
Block a user