赞
踩
TTS(Text-to-Speech,文本转语音)是一种将书面文本转换成口头语言输出的技术。用户输入文本,TTS系统将这些文本“读”出来,通常是通过合成语音的形式。这种技术可以使计算机、智能手机、平板电脑和其他设备通过语音与用户交流。
TTS系统通常包括以下几个步骤:
TTS技术有着广泛的应用和重要的社会意义:
随着技术的发展,TTS的自然度和可理解性在不断提高,使得它在我们日常生活中的应用越来越广泛。
- pip install TTS
-
- git clone https://github.com/coqui-ai/TTS
-
- make system-deps
- make install
https://huggingface.co/coqui/XTTS-v2
下载模型
- from TTS.api import TTS
- tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
- tts.to("cuda") # 如果你想要使用GPU
-
- # generate speech by cloning a voice using default settings
- tts.tts_to_file(text="It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.",
- file_path="output.wav",
- speaker_wav="5.wav",
- language="en")
运行后会下载模型到指定目录,会一直下不下来,将上面文件夹复制过去即可。
成功后,会生成output.wav
- from fastapi import FastAPI, HTTPException, Form
- from fastapi.responses import FileResponse
- import os
- from TTS.api import TTS
-
- app = FastAPI()
-
- # 初始化TTS模型
- tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
- tts.to("cuda") # 或者 tts.to("cpu"),取决于你的服务器配置
-
- # 指定一个固定的speaker_wav文件路径
- fixed_speaker_wav_path = "5.wav"
-
- # 确保temp目录存在
- temp_dir = "temp"
- os.makedirs(temp_dir, exist_ok=True)
-
- @app.post("/tts/")
- async def create_audio(text: str = Form(...)):
- # 生成安全的临时文件名
- output_file_name = f"{os.urandom(8).hex()}.wav"
- output_path = os.path.join(temp_dir, output_file_name)
-
- try:
- # 调用TTS模型生成语音,使用固定的speaker_wav文件
- tts.tts_to_file(text=text,
- file_path=output_path,
- speaker_wav=fixed_speaker_wav_path,
- language="zh-cn")
- except Exception as e:
- # 如果出现错误,返回错误信息
- raise HTTPException(status_code=500, detail=str(e))
-
- # 如果成功,返回生成的音频文件
- return FileResponse(output_path)
-
- if __name__ == "__main__":
- import uvicorn
- uvicorn.run(app, host="0.0.0.0", port=8001)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。