################################################################################
################################################################################
from PyPDF2 import PdfFileReader as reader
from aip import AipSpeech
import wave
import time # 时间库
import os # 系统库
################################################################################
################################################################################
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) # 写入文件
################################################################################
################################################################################
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()
################################################################################
################################################################################
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
在这里插入代码片