Python语音合成探究(三、合成语音的输出及文字同步显示)
生活随笔
收集整理的這篇文章主要介紹了
Python语音合成探究(三、合成语音的输出及文字同步显示)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? 語音合成如果只是發出聲音,還是沒有多少實用價值。
? ? ? ? 一方面,可以增加語音輸出功能,如把一段文字轉化成音頻播放器可以播放的聲音文件,如WAV或mp3。微軟語音的優點是支持離線語音合成,缺點是不能支持多音字的選擇,對多音字的處理,只能用單音的同音字替代。支持多音字選擇的語音模塊需要收費且配置復雜,需要在線語音合成。
? ? ? ? 另一方面,可以增加文字同步顯示功能。將程序打造成文本朗讀工具。
? ? ? ? 部分代碼如下(完整代碼請到資源中下載):
#!/usr/bin/env python #-*- coding: utf-8 -*-import os import pyttsx3 import chardet from pathlib import Pathdef user_tts():# 創建對象engine = pyttsx3.init()# 獲取當前語音速率rate = engine.getProperty('rate')# print(f'語音速率:{rate}')# 設置新的語音速率engine.setProperty('rate', 150)# 獲取當前語音音量volume = engine.getProperty('volume')# print(f'語音音量:{volume}')# 設置新的語音音量,音量最小為 0,最大為 1engine.setProperty('volume', 1.0)# 獲取當前語音聲音的詳細信息voices = engine.getProperty('voices')for voice in voices: # 打印已安裝語音信息print(f'您的電腦系統已安裝的語音聲音有:{voice}\n')# 設置當前語音聲音engine.setProperty('voice', voices[0].id)print(f'您選擇電腦系統語音聲音為:{voices[0]}')# 獲取當前語音聲音voice = engine.getProperty('voice')# print(f'當前語音速率為:{rate},音量大小為:{volume}')return enginedef talking(file,test):lines = file.readlines()print('')for line in lines:for a in range(1, len(line) // 60 + 2): # 將長文截成50字每行print(line[(60 * (a - 1)):60 * a].strip())# 將語音文本說出來engine.say(line)engine.runAndWait()test = test + line.strip()engine.runAndWait()engine.stop()# 保存為音頻文件engine.say("正在為您轉換為聲音文件,請稍候......")engine.save_to_file(test, '%s.mp3' % (txt_name)) # 可用酷狗打開,千千靜聽不行engine.say("轉換完成!")engine.runAndWait()def openTxt():# 提取同文件夾中文本清單,確定需要朗讀的文本list = []paths = Path.cwd()print(paths)os.system('dir *.txt /a/b >list.txt') # 運行Win命令獲取目錄信息print('TXT文件有:')with open('list.txt') as file_txt:for line in file_txt:line1 = line.rstrip('\n')list.append(line1)print(list.index(line1), line1) # 打印序號的內容return listif __name__ == '__main__':engine = user_tts()list = openTxt()......? ? ? 運行結果如下:
220
總結
以上是生活随笔為你收集整理的Python语音合成探究(三、合成语音的输出及文字同步显示)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MTK芯片技术资料大全,各个型号都有,包
- 下一篇: GAMES101 P10 几何1 笔记