from gtts import gTTS
from pydub import AudioSegment
from pydub.playback import play as pydub_play # 使用 pydub 的播放方法
import os
import time
# 设置环境变量以确保 pydub 可以找到 ffmpeg
os.environ["PATH"] += os.pathsep + r'E:\ffmpeg-master-latest-win64-gpl-shared\bin'
def speed_up_audio(file_path, speed=1.25):
sound = AudioSegment.from_file(file_path)
sound_with_altered_frame_rate = sound._spawn(sound.raw_data, overrides={
"frame_rate": int(sound.frame_rate * speed)
})
adjusted_audio_file = "temp_adjusted_output.mp3"
sound_with_altered_frame_rate.export(adjusted_audio_file, format="mp3")
return adjusted_audio_file
def text_to_speech(text, lang='zh', speed=1.25):
tts = gTTS(text=text, lang=lang, slow=False)
original_audio_file = "temp_output.mp3"
try:
tts.save(original_audio_file)
print("原始语音文件已生成")
if speed != 1.0:
adjusted_audio_file = speed_up_audio(original_audio_file, speed=speed)
print("音频速度调整完成")
audio_segment = AudioSegment.from_file(adjusted_audio_file)
pydub_play(audio_segment)
time.sleep(1)
if os.path.exists(adjusted_audio_file):
os.remove(adjusted_audio_file)
print(f"调整后的临时语音文件 {adjusted_audio_file} 已删除")
else:
audio_segment = AudioSegment.from_file(original_audio_file)
pydub_play(audio_segment)
print("语音播放完成")
finally:
if os.path.exists(original_audio_file):
time.sleep(1)
os.remove(original_audio_file)
print("原始临时语音文件已删除")
else:
print("原始临时语音文件不存在,可能未成功创建")
def process_text_files(directory):
for filename in os.listdir(directory):
if filename.endswith(".txt"):
file_path = os.path.join(directory, filename)
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
print(f"正在处理文件: {filename}")
text_to_speech(content, speed=1.0) # 根据需要调整speed参数
if __name__ == "__main__":
directory = r"E:\python project 1\股市三年半\各股及时信息反映_deepseek\2025-05-24"
process_text_files(directory)