在许多场景下需要将文本转化为MP3格式,本文将实现文本转化为声音,并且将声音保存为MP3格式。本文一朱自清的《春》为例,要实现阅读《春》并且转化为mp3格式的音频文件。
1 导入包
import pyttsx3
from docx import Document
def read_word_doc(file_path):
doc = Document(file_path)
full_text = []
for para in doc.paragraphs:
full_text.append(para.text)
return '\n'.join(full_text)
## 文本内容
text = read_word_doc('E:\工作\服务器\GPU\文字声音转化\春.docx')
# print(text)
2 读取文本文件
def read_word_doc(file_path):
doc = Document(file_path)
full_text = []
for para in doc.paragraphs:
full_text.append(para.text)
return '\n'.join(full_text)
## 文本内容
text = read_word_doc('E:\工作\服务器\文字声音转化\春.docx')
# print(text)
3 核心代码
#文字转语音
def text_to_speech_pyttsx3(text):
engine = pyttsx3.init()
#打印语速,单位是词/分钟.默认是200
rate = engine.getProperty("rate")
print("语速",rate)
#设置语速
engine.setProperty('rate',190)
print("当前音量",engine.getProperty('volume'))
voices = engine.getProperty('voices')
for voice in voices:
print(f"语音 ID: {voice.id}")
print(f"语音名称: {voice.name}")
#通过say方法添加要转换的文本,
engine.say(text)
#将语音保存为MP3文件
engine.save_to_file(text,r"E:\工作\服务器文字声音转化\春.mp3")
# 并通过runAndWait方法执行转换并等待完成:
engine.runAndWait()
text_to_speech_pyttsx3(text)
def notify_user(message):
engine = pyttsx3.init()
engine.say(message)
engine.runAndWait()
notify_user("主人,任务已完成。")
结果: