第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > python语音合成并播放_python实现语音合成 让你的小说自己念给你听

python语音合成并播放_python实现语音合成 让你的小说自己念给你听

时间:2023-01-01 09:42:19

相关推荐

python语音合成并播放_python实现语音合成 让你的小说自己念给你听

前言

有声小说相信大家都不陌生了, 里面的音频基本都是一些声优录制的。其实除了录制音频, 咱们可以利用百度开放的api接口使用python语言在线合成语音。

制作属于自己的有声小说, 一睹为快吧!!

本文内容:爬取指定章节的小说

调用百度api开放接口实现文字转换语音

读取文本的处理, 保存音频数据

环境介绍:python 3.6

pycharm

requests

re

aip

代码import re

import requests

from aip import AipSpeech

def get_novel(number):

# 1、分析目标网页,确定爬取的url路径,headers参数

url = 'http://www.xbiquge.la/10/10489/'

# 2、发送请求 -- requests 模拟浏览器发送请求,获取响应数据

response = requests.get(url)

response.encoding = response.apparent_encoding # 自动识别响应体的编码

html_data = response.text

# print(html_data)

# 3、解析数据

result_list = re.findall("

.*", html_data)

# print(result_list)

# 为了测试只下载一个章节的小说

sound = result_list[int(number)]

# 构造小说内容页的网址

all_url = 'http://www.xbiquge.la' + str(sound)

# print(new_url)

response_1 = requests.get(all_url)

response_1.encoding = response.apparent_encoding

html_data_2 = response_1.text

result = re.findall('

(.*?)

.*

', html_data_2, re.S)

# print(result)

# 保存数据

with open('a.txt', mode='w', encoding='utf-8') as f:

f.write(result[0].replace('', '').replace('

', '\n').replace('

', ''))

def change_talk():

""" 你的 APPID AK SK """

app_id = ''

api_key = ''

secret_key = ''

client = AipSpeech(app_id, api_key, secret_key)

# 处理文本长度

with open('a.txt', 'r', encoding='utf-8') as f:

flag = 0

while True:

flag += 1

text = f.read(1023) # 每次读取 1024 个字节(即 1 KB)的内容

if not text:

break

# print(text)

# print('*' * 300)

result = client.synthesis(text, 'zh', '1',

{"vol": 9,

"spd": 4,

"pit": 9,

"per": 0,

})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码

if not isinstance(result, dict): # 如果返回的数据不是字典, 那就是二进制音频数据

with open('video\\{}.mp3'.format(str(flag)), 'wb') as file:

file.write(result)

print('正在生成第 {} 段语音........'.format(flag))

if __name__ == '__main__':

num = input('输入想要朗读的章节(数字):')

get_novel(num)

change_talk()

成果展示:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。