创建异步任务执行文件tasks:
# tasks.py(新建此文件)
from celery import Celery
from melo.api import TTS
import os
import uuid
BROKER = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/1'
CELERY_TIMEZONE = 'Asia/Shanghai'
app = Celery('tasks', broker=BROKER, backend=CELERY_RESULT_BACKEND)
# TTS 模型配置
speed = 1.0
device = 'cuda:0' # 或者 'cpu' 如果您没有可用的 GPU
model = TTS(language='ZH', device=device)
speaker_ids = model.hps.data.spk2id
# 定义一个输出目录
output_dir = 'output'
os.makedirs(output_dir, exist_ok=True)
@app.task
def tts_task(text):
output_path = os.path.join(output_dir, f'{uuid.uuid4().hex}.wav')
model.tts_to_file(text, speaker_ids['ZH'], output_path, speed=speed)
return output_path
创建进程文件produce
from tasks import tts_task
result1 = tts_task.delay("哒哒哒哒哒哒哒")
print(result1.id)
在终端执行命令:这里的tasks.py不加后缀py
celery -A tasks worker -l info