CosyVoice文本转语音:轻松创造个性化音频
CosyVoice文本转语音:轻松创造个性化音频"
要实现一个使用通义语音合成模型CosyVoice将文字转换为音频的图形界面应用,可以使用Python的tkinter
库来创建图形用户界面(GUI),并使用requests
库来调用CosyVoice的API。
以下是一个简单的示例代码,展示了如何实现这个功能:
- 安装所需的库:
pip install requests tkinter
- 编写代码:
import tkinter as tk
from tkinter import messagebox
from dashscope.audio.tts_v2 import SpeechSynthesizer
import dashscope
# 设置API密钥
dashscope.api_key = "your_api_key"
# 定义可用的模型和声音
model = "cosyvoice-v1"
voice = "longlaotie" #还有很多音色,这里只列举一个
# 合成语音并保存文件
def synthesize_and_save(text):
if not text:
messagebox.showwarning("警告", "请输入要合成的文本")
return
synthesizer = SpeechSynthesizer(model=model, voice=voice)
audio = synthesizer.call(text)
if synthesizer.get_last_request_id():
with open("output.mp3", 'wb') as f:
f.write(audio)
messagebox.showinfo("成功", "合成成功,已保存为 output.mp3")
else:
messagebox.showerror("错误", f"合成失败: {audio.message}")
def on_submit():
text = text_entry.get() # 获取输入框的文本
synthesize_and_save(text) # 调用合成函数
# 创建主窗口
root = tk.Tk()
root.title("语音合成器")
# 输入框
text_entry = tk.Entry(root, width=50)
text_entry.pack(pady=20)
# 提交按钮
submit_button = tk.Button(root, text="合成语音", command=on_submit)
submit_button.pack(pady=10)
# 运行主循环
root.mainloop()
说明:
- API_URL 和 API_KEY: 你需要将
API_URL
替换为实际的CosyVoice API端点,并将API_KEY
替换为你在阿里云或其他提供者处获取的API密钥。 - 文本输入框: 使用
tk.Text
创建一个多行文本输入框,用户可以输入要转换为音频的文本。 - 语音选择下拉菜单: 使用
ttk.Combobox
创建一个下拉菜单,用户可以选择不同的语音。 - 合成按钮: 当用户点击“合成”按钮时,会调用
on_synthesize
函数,该函数会从输入框中获取文本和选择的语音,然后调用synthesize_speech
函数将文本转换为音频。 - 错误处理: 如果API调用失败,会显示一个错误消息框;如果成功,会显示一个成功消息框,并保存生成的音频文件。
运行代码:
将上述代码保存为一个Python文件(例如 text_to_speech.py
),然后在命令行中运行:
python text_to_speech.py
这将启动一个图形界面应用,用户可以在其中输入文本并选择语音,然后点击“合成”按钮将文本转换为音频文件。
欢迎大家体验、试用阿里云百炼大模型和阿里云服务产品,链接如下:
阿里云百炼大模型
https://bailian.console.aliyun.com/
通义灵码_智能编码助手面向用户上线个人和企业版产品
https://tongyi.aliyun.com/lingma/pricing?userCode=jl9als0w
云工开物_阿里云高校计划助力高校科研与教育加速。
https://university.aliyun.com/mobile?userCode=jl9als0w
无影云电脑个人版简单易用、安全高效的云上桌面服务
https://www.aliyun.com/product/wuying/gws/personal_edition?userCode=jl9als0w
云服务器ECS省钱攻略五种权益,限时发放,不容错过
https://www.aliyun.com/daily-act/ecs/ecs_trial_benefits?userCode=jl9als0w