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

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

在这里插入代码片

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。