实现音频预缓存实用程序

This commit is contained in:
2025-07-30 01:55:46 +08:00
parent 2eeb60c75b
commit 123f7919b0
3 changed files with 45 additions and 1 deletions

3
.gitignore vendored
View File

@@ -2,4 +2,5 @@
.directory
__pycache__/
scripts/
.idea
.idea
cache

View File

@@ -0,0 +1,42 @@
import particles as pt
import edge_tts as tts
from pathlib import Path
import shutil
def precache(text):
cache_dir = Path(f"./cache/voice/")
cache_dir.mkdir(parents = True, exist_ok = True)
cache = cache_dir / f"{text}.wav"
if not cache.exists():
communicate = tts.Communicate(text, "zh-CN-YunjianNeural")
communicate.save_sync(f"./cache/voice/{text}.wav")
def proc_file(path):
nu = pt.NucleonUnion(path)
c = 0
for i in nu.nucleons:
c += 1
print(f"预缓存 [{nu.name}] ({c}/{len(nu)}): {i["content"]}")
precache(f"{i["content"]}")
def walk(path_str):
path = Path(path_str)
print(f"正在遍历目录: {path}")
for item in path.iterdir():
if item.is_file():
if item.suffix == ".toml":
print(f"正预缓存文件: {item.name}")
proc_file(item)
elif item.is_dir():
print(f"进入目录: {item.name}")
print("音频预缓存实用程序")
print("需要?")
print("全部缓存: A")
print("清空缓存: C")
choice = input("输入选项 $ ")
if choice == "a" or choice == "A":
walk("./nucleon")
if choice == "c" or choice == "C":
shutil.rmtree("./cache/voice")

View File

@@ -2,6 +2,7 @@ import typing
import particles as pt
import pathlib
import auxiliary as aux
class Parser():
"""轻量级版本文件解析器, 用于文件管理器的记忆状态解析"""