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

