pdf文字转语音

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、需要的库
  • 二、使用步骤
    • 1.将pdf文件转成字符串
    • 2.将字符串转成语音mp3格式
  • 总结


前言

分为2个部分,

  1. 将pdf转成文本文件
  2. 将文本文件转成mp3格式

一、需要的库

import pyttsx3,PyPDF2

二、使用步骤

1.将pdf文件转成字符串

代码如下(示例):

import pyttsx3,PyPDF2

pdfreader = PyPDF2.PdfReader(open('zhenyefu - 副本.pdf', 'rb'))

#将所有的文字放在textwra里,我转的pdf,30多万字,直接放在字符串里没有问题
textwra=''
for page_num in range(len(pdfreader.pages)):
    text = pdfreader.pages[page_num].extract_text()
    cleaned_text = text.strip().replace('\n',' ')
    textwra=textwra+cleaned_text

2.将字符串转成语音mp3格式

如何在Python中将字符串划分为“n”部分
文本转换为语音——pyttsx3模块的使用
代码如下(示例):

def remix(str1, x):
    """分割常字符串的 因为字符串太大了,我这里需要切割"""
    stride1, mod = divmod(len(str1), x)
    print(stride1,mod)
    parts = [str1[i * stride1:(i + 1) * stride1] for i in range(x)]
    parts[-1] = parts[-1] + str1[-mod]
    return parts
    
text_list=remix(textwra,5)

for i in range(len(text_list)):
    print(f'在完成第{i+1}部分,字符串的长度是{len(text_list[i])}')
    speaker.save_to_file(text_list[i], f'test_test{i+1}.mp3')
    speaker.runAndWait()
speaker.stop()

总结

完整的代码如下:

import pyttsx3,PyPDF2

# pdfreader = PyPDF2.PdfReader(open('zhenyefu.pdf', 'rb'))
pdfreader = PyPDF2.PdfReader(open('zhenyefu - 副本.pdf', 'rb'))
speaker = pyttsx3.init()

print(len(pdfreader.pages))

def remix(str1, x):
    """分割常字符串的"""
    stride1, mod = divmod(len(str1), x)
    print(stride1,mod)
    parts = [str1[i * stride1:(i + 1) * stride1] for i in range(x)]
    parts[-1] = parts[-1] + str1[-mod]
    return parts

textwra=''
for page_num in range(len(pdfreader.pages)):
    text = pdfreader.pages[page_num].extract_text()
    cleaned_text = text.strip().replace('\n',' ')
    textwra=textwra+cleaned_text

print(len(textwra))
text_list=remix(textwra,5)
for i in range(len(text_list)):
    print(f'在完成第{i+1}部分,字符串的长度是{len(text_list[i])}')
    speaker.save_to_file(text_list[i], f'test_test{i+1}.mp3')
    speaker.runAndWait()
speaker.stop()

你可能感兴趣的:(pdf,python,语音识别)