美文网首页
利用Python将PDF文档转为MP3音频

利用Python将PDF文档转为MP3音频

作者: python大数据分析 | 来源:发表于2020-12-13 19:02 被阅读0次

    1. 转语音工具

    微信读书有一个功能,可以将书里的文字转换为音频,而且声音优化的不错,比传统的机械朗读听起来舒服很多。

    记得之前看到过Python有一个工具包,可以将文字转换为语音,支持英文和中文,而且可以调节语速语调、导出mp3等。

    去Github查了下,这个库叫:pyttsx3

    简单来说,pyttsx3可以文字转语音,而且是离线工作的,这一点就很实用。


    安装比较容易,直接在命令行用pip安装:

    pip install pyttsx3
    

    我准备动手试试,将PDF书籍转成音频。

    用什么书呢?最近在群里看到有人发张磊的新作《价值》电子书,这本今年刚出的畅销书盗版猖獗,我之前在微信读书里看过,对作者长期主义的观点深信不疑。


    那就它了。

    2. PDF转文本

    既然是把PDF转化成语音,肯定是需要先读取PDF中的文字,再利用pyttsx3转语音。

    Python中操作PDF的工具库主要是PyPDF2,但发现编码实在有点繁琐,我就换了另一个库pdfplumber,与PyPDF2语法类似,用起来还算流畅。

    pdfplumber可以处理PDF包括文本、表格、格式在内的各种信息,小而强大。

    # 读取PDF文档
    pdf = pdfplumber.open("价值.pdf")
    
    # 获取页数
    print("总页数:",len(pdf.pages))
    print("-----------------------------------------")
    
    # 读取第4页
    first_page = pdf.pages[3]
    print("本页:",first_page.page_number+1)
    print("-----------------------------------------")
    
    # 导出第4页文本
    text = first_page.extract_text()
    print(text)
    

    输出:


    上面的代码做了几件事情:
    读取PDF文档、读取页数、读取第4页、输出第4页文本

    3. 文本转语音

    接下来开始将第4页的文本转化为音频。

    import pyttsx3
    
    # 初始化来获取语音引擎
    engine = pyttsx3.init()
    
    # 去掉文本中的换行符
    text = text.replace('\n','')
    
    # 朗读文本
    engine.say(text)
    engine.runAndWait()
    

    上面代码使用pyttsx3将文本转化为音频,然后朗读出来。我是在jupyter notebook上做实验的,代码执行后,电脑会直接朗读。

    也可以将生成的音频保存为mp3格式。

    # 保存音频到本地,格式为mp3
    engine.save_to_file(text, 'test.mp3')
    engine.runAndWait()
    

    当然你还可以调整声音的类型、速度、大小。

    # 调整人声类型
    voices = engine.getProperty('voices')  
    engine.setProperty('voice', voices[0].id)
    
    # 调整语速,范围一般在0~500之间
    rate = engine.getProperty('rate')                         
    engine.setProperty('rate', 200)     
    
    # 调整声量,范围在0~1之间
    volume = engine.getProperty('volume')                         
    engine.setProperty('volume',0.8) 
    

    最后听下生成的语音是什么样的?

    整体还是比较流畅的,虽然不如微信读书语音听着那般舒服,但做做小工具还是不错的。

    相关文章

      网友评论

          本文标题:利用Python将PDF文档转为MP3音频

          本文链接:https://www.haomeiwen.com/subject/dfxpgktx.html