- 1.png
- 之前写了一个爬取哔哩哔哩直播弹幕的功能
- 但是在乌班图上面进行哔哩哔哩直播的时候
- 一直看着终端里面的弹幕不太方便,如果有人发送弹幕可能第一时间无法知道,等人走了才发现弹幕
- 再回答就没有任何意义了,目前实现的方法有三种
- 第一种
- 申请第三方接口或者扒别人的接口
- 这个方法在Python url音乐流播放已经实现了,只需要传递参数给第三方平台
- 获取到音频文件的url地址就行了,修改一下参数就可以实现音乐或者弹幕的播放了
- 第二种
- 使用系统的语音
- 就像在Windows系统下用win32com调用的windows的SAPI来实现
- 第三种
- 使用离线库进行文本转语音
- 比如像pyttsx3一样传输文本来生成音频文件,然后播放
- 区别
- 第一种方法无论是使用第三方平台官方的还是自己扒的接口
- 无一例外基本上都是有额度限制的,超过了要付费或者限制
- 第二种系统的语音模型是固定的,或者说可以调节的参数太少了
- 并且每一个系统的语音也不是一样的
- 如果需要一个多系统都可以使用的话,要研究对应的系统语音
- 所以这里我们来实现一下第三种方法
- 转来转去发现还是edge-tts语音模型比较多,所以使用这个库来实现这个功能
- 创建配置文件
touch config.json
- 写入内容
{ "cache_music":"cache.mp3", "edge_model":"zh-CN-XiaoxiaoNeural", "edge_rate":"-4%", "edge_volume":"+0%" }
- 创建脚本
touch main.py
- 写入内容
""" ------------------------------------------------- # !~/桌面/弹幕 # -*- coding: utf-8 -*- # @Time : 2023-08-31 11:37:14 # @Author : buyan<buyan@mail.qaqbuyan.com> # @Description : 必应音频文件播放 ------------------------------------------------- """ import json import edge_tts import asyncio from playsound import playsound # 配置文件 config = "./config.json" configuration = json.load(open(config, encoding='utf-8')) # 缓存音频 cache_music = configuration["cache_music"] # ------------------------------------------------- # 模型 # 这里我列出来了几个模型,更多详细的模型自行查看官方文档 # 女 # zh-CN-XiaoxiaoNeural # zh-CN-liaoning-XiaobeiNeural # zh-CN-XiaoyiNeural # zh-CN-shaanxi-XiaoniNeural # 男 # zh-CN-YunjianNeural # zh-CN-YunxiNeural # zh-CN-YunxiaNeural # zh-CN-YunyangNeural # ------------------------------------------------- voice = configuration["edge_model"] #语速 -50% 到 +50% rate = configuration["edge_rate"] #音量 -50% 到 +50% volume = configuration["edge_volume"] async def edge(text): tts = edge_tts.Communicate(text=text, voice=voice, rate=rate, volume=volume) await tts.save(cache_music) # 播放 playsound(cache_music) if __name__ == '__main__': # 异步事件循环 asyncio.run(edge("你好,我是程序员卟言"))
- 运行脚本
python3 ./main.py
【Python+edge-tts实现文本转语音并播放】
qaq卟言2023-10-14 08:22:50
Python
开始
完结