使用Python實現(xiàn)文字轉(zhuǎn)語音并播放功能
用Python將給定的文本轉(zhuǎn)換成語音并播放,首先要導(dǎo)入以下庫。
import os from pygame import mixer import pyttsx3
之后,分兩步進行文本轉(zhuǎn)語音操作:
1.將文本生成音頻文件
參數(shù)input_text是需要朗讀的字符串,返回值output_path是生成的語音文件。
def m_generatetts(input_text): # 輸出input_text,生成相應(yīng)的語音文件
# 獲取輸入的文本內(nèi)容
# input_text = text_entry.get("0.0", "end-1c")
# 初始化 TTS 引擎
engine = pyttsx3.init()
global cansaveornot
try:
# 設(shè)置語速、音量等參數(shù)(根據(jù)需求自行調(diào)整)
engine.setProperty('rate', 150) # 默認值為 200
engine.setProperty('volume', 0.8) # 默認值為 1.0
if not os.path.exists('./tmp/'): # 檢測文件夾是否存在,如果不存在則創(chuàng)建
os.makedirs('./tmp/')
# print("文件夾已檢查并創(chuàng)建")
output_path = './tmp/outputtts.wav' # output_path是臨時生成的TTS語音文件
if os.path.exists(output_path): # 如果檢測到已經(jīng)存在該文件,則先退出進程,然后刪除掉該文件
mixer.quit() # 退出語音進程
os.remove(output_path) # 刪除掉語音文件
# print(f"文件 {output_path} 刪除成功!")
# 將文本轉(zhuǎn)換為語音并保存到指定路徑
engine.save_to_file(input_text, output_path) # 保存語音文件
engine.runAndWait()
# print("已保存為 %s" % output_path)
cansaveornot = 'yes' # 生成的文件保存成功才允許導(dǎo)出操作
return output_path
except Exception as e:
print("發(fā)生錯誤:", str(e))2.播放音頻文件
參數(shù)filepath是第一步生成出來的wav音頻文件地址。
def m_playaudio(filepath): # filepath是WAV格式的語音文件地址,播放該文件
mixer.init()
size = 0.7
mixer.music.set_volume(size)
mixer.music.load(filepath)
mixer.music.play()以上就是使用Python實現(xiàn)文字轉(zhuǎn)語音并播放功能的詳細內(nèi)容,更多關(guān)于Python實現(xiàn)文字轉(zhuǎn)語音的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python 爬蟲入門必學(xué):Requests 庫核心用法全解
requests是python中一個常用于發(fā)送HTTP請求的第三方庫,它極大地簡化了web服務(wù)交互的過程,本文給大家介紹python數(shù)據(jù)分析之爬蟲基礎(chǔ)requests詳解,感興趣的朋友跟隨小編一起看看吧2026-04-04
基于Python實現(xiàn)的購物商城管理系統(tǒng)
這篇文章主要介紹了基于Python實現(xiàn)的購物商城管理系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟
數(shù)據(jù)庫非常重要,程序的數(shù)據(jù)增刪改查需要數(shù)據(jù)庫支持,python處理數(shù)據(jù)庫非常簡單,而且不同類型的數(shù)據(jù)庫處理邏輯方式大同小異,下面這篇文章主要給大家介紹了關(guān)于Python使用sqlite3第三方庫讀寫SQLite數(shù)據(jù)庫的方法步驟,需要的朋友可以參考下2022-07-07
Python周期任務(wù)神器之Schedule模塊使用詳解
這篇文章主要為大家詳細介紹了Python中的周期任務(wù)神器—Schedule模塊的安裝和初級、進階使用方法,文中的示例代碼講解詳細,需要的可以參考一下2022-04-04

