This commit is contained in:
yinsx
2025-12-24 15:15:13 +08:00
commit df085f3f8f
27 changed files with 1926 additions and 0 deletions

View File

@ -0,0 +1,31 @@
import os
import tempfile
from datetime import datetime
from tts_service import TTSService
from a2f_service import A2FService
from blend_shape_parser import BlendShapeParser
class TextToBlendShapesService:
def __init__(self, lang='zh-CN', a2f_url="192.168.1.39:52000"):
self.tts = TTSService(lang=lang)
self.a2f = A2FService(a2f_url=a2f_url)
self.parser = BlendShapeParser()
def text_to_blend_shapes(self, text: str, output_dir: str = None):
if output_dir is None:
output_dir = tempfile.gettempdir()
os.makedirs(output_dir, exist_ok=True)
timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
audio_path = os.path.join(output_dir, f'tts_{timestamp}.wav')
self.tts.text_to_audio(text, audio_path)
csv_path = self.a2f.audio_to_csv(audio_path)
frames = self.parser.csv_to_blend_shapes(csv_path)
return {
'success': True,
'frames': frames,
'audio_path': audio_path,
'csv_path': csv_path
}