python 百度 文本转语音手机版_百度文字转语音.py

from urllib.request import urlretrieve

from urllib import parse

import requests

import random

import jsonpath

import os

my_headers=[

"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",

"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14",

"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)"

]

save_path = r'E:\Vedio\百度识别语音\转换语音.mp3'

#需要转语音的文字路径

sb_path = r'E:\Vedio\百度识别语音\bd_mp3_print.txt'

header = {'User-Agent': random.choice(my_headers)}

def add_saveFile():

if not os.path.exists('E:\Vedio\百度识别语音'):

os.mkdir(r'E:\Vedio\百度识别语音')

def get_url(text):

AppID = '你的ID'

API_KEY = '你的ApiKEy'

SECRET_KEY = '你的密码'

getTok = f'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_KEY}&client_secret={SECRET_KEY}'

json = requests.get(getTok,headers=header).json()

#获取TOK TOK可以用于生成转换后的音频文件

access_token = jsonpath.jsonpath(json,'$..access_token')

for acc in access_token:

access = acc

#TOK的有效期 单位秒

expires_in =jsonpath.jsonpath(json,'$..expires_in')

print('tok:',access_token,'有效期:',expires_in)

#cuid 为百度开放平台自己创建的(AppID)

#url中参数 tok上面生成的TOK

# text为转换的文字

# vol音量0-15

# per是发音人度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5度小宇=1,#度小美=0,度逍遥=3,度丫丫=4

# #spd为语速0-15

# pit音调,0-15,

# aue保存音频格式常用 3 mp3格式

vol = input('请选择音量(0-15)')

per = input('请选择发音人(度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5度小宇=1)')

spd = input('请选择语速(0-15)')

pit = input('请选择音调(0-15)')

print('正在生成-------------------------')

url = f'http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid={AppID}&tok={access}&tex={text}&vol={vol}&per={per}&spd={spd}&pit={pit}&aue=3'

return url

if not os.path.exists(sb_path):

add_saveFile()

open(sb_path,'w')

print(r'E:\Vedio\百度识别语音\bd_mp3_print.txt 文件创建成功')

with open(sb_path)as r:

text = r.read()

if text == '' and len(text) == 0:

print('E:\Vedio\百度识别语音\bd_mp3_print.txt 文件没有内容')

else:

encode_text_1 = parse.quote(text)#将转换的文本第一次url_encode utf-8编码

encode_text_2 = parse.quote(encode_text_1)#第二次编码(百度对二次编码有更好的支持)

url = get_url(encode_text_2)

urlretrieve(url,save_path)

print('请查看E:\Vedio\百度识别语音\转换语音.mp3')

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值