使用百度接口合成语音

################################################################################

Copyright Version 1.01 by xiaozhanfeng, Last modify at 2022-12-20

本程序将pdf文件转换成mp3文件

函数命名:

FUNCxxxxxxxx(var1,var2,…),标准返回值为运行耗时

变量命名:

变量类型 基础变量 列表变量 集合变量 字典变量

字符型 STRxxxx STRLISTxxx STRSETxxxx STRDICTxxxx

数字型 INTxxxx INTLISTxxx INTSETxxxx INTDICTxxxx

逻辑型 LOGxxxx LOGLISTxxx LOGSETxxxx LOGDICTxxxx

文件型 FILExxxx FILELISTxxx FILESETxxxx FILEDICTxxxx

邮件型 MAILxxxx MAILLISTxxx MAILSETxxxx MAILDICTxxxx

可调参数:

################################################################################

from PyPDF2 import PdfFileReader as reader

from comtypes.client import CreateObject

from comtypes.gen import SpeechLib

from aip import AipSpeech
import wave
import time # 时间库
import os # 系统库

################################################################################

转换程序,输入pdf文件,输出mp3文件,转中文,百度

################################################################################
def FUNCpdf2mp3bd(STRpdffilename):
FILEhandle = reader(open(STRpdffilename, ‘rb’))
STRmp3filename=STRpdffilename[0:len(STRpdffilename)-3] + ‘mp3’
APP_ID = “29352535”
API_KEY = “XKxlPh4oSy5NmXcemgAxSXzw”
SECRET_KEY = “yxo78Mf7N9YbHlc5zlIDbr76sX4bNTGA”
STRmp3text=“”
for page in range(FILEhandle.numPages):
STRtext = FILEhandle.getPage(page).extractText()
STRtext = STRtext.replace(‘\n’,‘’)
STRmp3text+=STRtext
if os.path.exists(STRmp3filename):
os.remove(STRmp3filename)
STRclient = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 配置百度语音客户端
FILEresult = STRclient.synthesis(“你好STRmp3text”,‘zh’,1,{‘spd’:5,‘pit’:5,‘vol’:5,‘per’:0})
# spd:语速,取值0-9,默认为5中语速
# pit:音调,取值0-9,默认为5中语调
# vol:音量,取值0-15,默认为5中音量
# per:发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女
print(FILEresult)
if not isinstance(FILEresult, dict):
with open(STRmp3filename,‘wb’) as FILEmp3: # 打开文件流
FILEmp3.write(FILEres) # 写入文件

################################################################################

转换程序,输入pdf文件,输出mp3文件,转中文

################################################################################
def FUNCpdf2mp3cn(STRpdffilename):
FILEhandle = reader(open(STRpdffilename, ‘rb’))
FILEengine = CreateObject(“SAPI.SpVoice”)
FILEstream = CreateObject(“SAPI.SpFileStream”)
STRmp3text=“”
for page in range(FILEhandle.numPages):
STRtext = FILEhandle.getPage(page).extractText()
STRtext = STRtext.replace(‘\n’,‘’)
STRmp3text+=STRtext
STRmp3filename=STRpdffilename[0:len(STRpdffilename)-3] + ‘mp3’
if os.path.exists(STRmp3filename):
os.remove(STRmp3filename)
FILEstream.Open(STRmp3filename, SpeechLib.SSFMCreateForWrite)
FILEengine.AudioOutputStream = FILEstream
FILEengine.speak(STRmp3text)
FILEstream.Close()

################################################################################

转换程序,输入pdf文件,输出mp3文件,转英文

################################################################################
def FUNCpdf2mp3en(STRpdffilename):
FILEhandle = reader(open(STRpdffilename, ‘rb’))
FILEengine = pyttsx3.init()
STRmp3text=“”
for page in range(FILEhandle.numPages):
STRtext = FILEhandle.getPage(page).extractText()
STRtext = STRtext.replace(‘\n’,‘’)
STRmp3text+=STRtext
# FILEengine.say(STRtext) # 直接阅读
“”"
voices = FILEengine.getProperty(‘voices’) # 调整人声类型
FILEengine.setProperty(‘voices’, voices[0].id)
rate = FILEengine.getProperty(‘rate’) # 调整语速,范围一般在0~500之间
FILEengine.setProperty(‘rate’, 200)
volume = FILEengine.getProperty(‘volume’) # 调整声量,范围在0~1之间
FILEengine.setProperty(‘volume’,0.8)
“”"
STRmp3filename=STRpdffilename[0:len(STRpdffilename)-3] + ‘mp3’
if os.path.exists(STRmp3filename):
os.remove(STRmp3filename)
FILEengine.save_to_file(STRtext,STRmp3filename) # 写MP3文件
FILEengine.runAndWait()

################################################################################

打印主程序菜单,输入功能耗时,标准输出

################################################################################
def FUNCmenu():
INTbegintime=time.perf_counter()
os.system(“clear”) # 清屏
print(" Quit…退出系统")
INTcnttime=round(time.perf_counter()-INTbegintime)
return INTcnttime

程序主体部分

while True:
### 程序主屏幕
INTcnttime=FUNCmenu()
STRinput=input(" >>>>>>>>>请输入需要转换的pdf文件:")
STRinputtemp=STRinput.lower() # 将输入项转换为小写
if STRinputtemp==“quit” or STRinputtemp==“exit” or STRinputtemp==“q” or STRinputtemp==“e”:
break
elif os.path.exists(STRinput):
FUNCpdf2mp3bd(STRinput)
else:
continue

在这里插入代码片

你可能感兴趣的:(Python,百度,python,开发语言)