近在研究Pyqt的使用,于是准备做一些小工具练手。
本文为自研免费推文助手软件系列第1篇文章,后面会持续更新。
一、目标功能
1、文本转语音:生成音频文件(.mp3) ;(v1.0)
2、文本转语音:生成字幕文件(.srt);(v2.0)
3、文本处理:去除无效行(空行、纯数字行)、去除特殊字符串;(v2.0)
4、API服务:辅助手机发送文本到电脑;(v2.0)
4、素材下载:下载小红书等平台的无水印视频;(v3.0)
5、其他。(视情况而定,有人用就加,没人用就结束本系列)
二、核心代码
1、文本转语音核心
使用edge-tts文本转语音库。执行 pip install edge-tts 即可安装。
# 文本转语音核心代码
import aiofiles
import asyncio
from edge_tts import Communicate
async def async_text_to_voice(text, file, voice='zh-CN-XiaoxiaoNeural', rate='+0%'):
"""
:param text: 目标文本
:param file: 生成的音频文件
:param voice: 角色
:param rate: 语速
:return:
"""
try:
communicate = Communicate(text, voice, rate=rate)
async with aiofiles.open(file + '.mp3', 'wb') as f:
async for chunk in communicate.stream():
if chunk['type'] == 'audio':
await f.write(chunk['data'])
except Exception as e:
print("发生错误:", e)
def text_to_voice(text, path=None, voice='zh-CN-XiaoxiaoNeural', rate='+0%'):
if not text:
return False, '内容为空,无文件生成'
try:
asyncio.run(async_text_to_voice(text, path, voice, rate))
res = True, ''
except Exception as e:
res = False, f"发生错误:{e}"
return res
2、UI页面
使用PYQT5拖拽而成。
三、使用说明
当前为v1.0版本,仅具有基本的文本转语音功能。
1、选择角色、设置语速(1.0感觉太慢了,所以我设置的默认1.3);
2、粘贴目标文本;
3、点击生成按钮等待生成(完成后生成按钮由不可点击转为可点击状态表示生成完成,后面考虑加上进度条吧);
4、最终会在本软件所在目录生成音频文件。
提BUG
本软件为个人开发,所以测试方面不足,若发生错误异常欢迎沟通,如有建议也可以直接联系我。