最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從入門到實(shí)戰(zhàn)詳解Python文本轉(zhuǎn)語(yǔ)音的完全指南

 更新時(shí)間:2026年05月20日 08:13:29   作者:detayun  
本文介紹了如何使用Python的pyttsx3庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音功能,主要內(nèi)容包括pyttsx3的安裝方法,5行代碼快速實(shí)現(xiàn)語(yǔ)音播報(bào)以及保存音頻文件和常見問題解決方案,有需要的小伙伴可以了解下

用Python讓你的程序"開口說話"!支持中英文,5分鐘上手 

什么是文本轉(zhuǎn)語(yǔ)音?

文本轉(zhuǎn)語(yǔ)音(Text-to-Speech, TTS) 就是讓計(jì)算機(jī)把文字讀出來(lái)。

應(yīng)用場(chǎng)景:

  • 智能助手(如小愛同學(xué)、Siri)
  • 有聲讀物生成
  • 車載導(dǎo)航語(yǔ)音播報(bào)
  • 障礙輔助工具

Python 中最流行的 TTS 庫(kù)是 pyttsx3,它離線運(yùn)行、跨平臺(tái)、支持中英文!

為什么選擇 pyttsx3?

特性pyttsx3gTTSedge-tts
離線使用???
支持中文???
跨平臺(tái)???
自定義語(yǔ)音???
速度? 快?? 慢(需聯(lián)網(wǎng))?? 慢(需聯(lián)網(wǎng))

結(jié)論:離線 + 中文 + 可定制 → pyttsx3 是首選!

安裝教程

步驟1:創(chuàng)建虛擬環(huán)境(推薦)

# 創(chuàng)建虛擬環(huán)境
python -m venv tts_env
# 激活環(huán)境
# Windows:
tts_env\Scripts\activate
# Mac/Linux:
source tts_env/bin/activate

步驟2:安裝 pyttsx3

pip install pyttsx3
# 如果需要更好的兼容性,安裝特定版本
pip install pyttsx3==2.90

步驟3:安裝 pypiwin32(Windows 必需)

pip install pypiwin32

快速上手(5行代碼)

import pyttsx3

engine = pyttsx3.init()
engine.say("你好,世界!Hello World!")
engine.runAndWait()

運(yùn)行后,你的電腦就會(huì)說話了! 

進(jìn)階功能

1. 調(diào)整語(yǔ)速

import pyttsx3

engine = pyttsx3.init()

# 獲取當(dāng)前語(yǔ)速
rate = engine.getProperty('rate')
print(f"當(dāng)前語(yǔ)速: {rate}")  # 默認(rèn) 200

# 設(shè)置語(yǔ)速(范圍 50-300)
engine.setProperty('rate', 150)  # 變慢
engine.say("這是慢速語(yǔ)音")
engine.runAndWait()
語(yǔ)速值效果
50?? 極慢
150?? 正常偏慢
200?? 默認(rèn)
300?? 極快

2. 調(diào)整音量

import pyttsx3

engine = pyttsx3.init()

# 獲取當(dāng)前音量
volume = engine.getProperty('volume')
print(f"當(dāng)前音量: {volume}")  # 默認(rèn) 1.0

# 設(shè)置音量(范圍 0.0 - 1.0)
engine.setProperty('volume', 0.8)  # 80% 音量
engine.say("這是80%音量的語(yǔ)音")
engine.runAndWait()

3. 切換語(yǔ)音(中英文)

import pyttsx3

engine = pyttsx3.init()

# 查看所有可用語(yǔ)音
voices = engine.getProperty('voices')
for i, voice in enumerate(voices):
    print(f"語(yǔ)音 {i}: {voice.name} (ID: {voice.id})")

# 切換到中文語(yǔ)音(通常是索引 1)
engine.setProperty('voice', voices[1].id)
engine.say("這是中文語(yǔ)音")
engine.runAndWait()

# 切換到英文語(yǔ)音(通常是索引 0)
engine.setProperty('voice', voices[0].id)
engine.say("This is English voice")
engine.runAndWait()

輸出示例

語(yǔ)音 0: Microsoft David (ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0)
語(yǔ)音 1: Microsoft Huihui (ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0)

4. 保存為音頻文件

import pyttsx3

engine = pyttsx3.init()

# 設(shè)置保存路徑
engine.save_to_file("你好,這是保存的音頻", "test.mp3")
engine.runAndWait()

print("? 音頻已保存為 test.mp3")

常見問題及解決方案

問題1:SyntaxError: invalid syntax(海象運(yùn)算符錯(cuò)誤)

原因:Python 版本低于 3.8

解決

# 方案A:升級(jí) Python 到 3.8+
# 方案B:降級(jí) pyttsx3
pip install pyttsx3==2.90

問題2:_ctypes.COMError: (-2147200966, None, ...)

原因:Windows 語(yǔ)音引擎找不到可用語(yǔ)音

解決

import pyttsx3

engine = pyttsx3.init()

# ?? 關(guān)鍵:手動(dòng)設(shè)置語(yǔ)音
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)  # 使用第一個(gè)語(yǔ)音

engine.say("測(cè)試成功")
engine.runAndWait()

問題3:KeyError: None

原因:驅(qū)動(dòng)初始化失敗

解決

pip uninstall pyttsx3 -y
pip install pyttsx3==2.90
pip install pypiwin32

問題4:沒有中文語(yǔ)音

解決

  1. 打開 Windows 設(shè)置 → 時(shí)間和語(yǔ)言 → 語(yǔ)音
  2. 點(diǎn)擊 “添加語(yǔ)音”
  3. 搜索 “Chinese” 并安裝
  4. 重啟電腦

完整實(shí)戰(zhàn)案例

案例1:智能朗讀器(支持中英文切換)

import pyttsx3

class TextToSpeech:
    def __init__(self):
        self.engine = pyttsx3.init()
        self.voices = self.engine.getProperty('voices')
        
    def set_chinese(self):
        """切換到中文語(yǔ)音"""
        self.engine.setProperty('voice', self.voices[1].id)
        
    def set_english(self):
        """切換到英文語(yǔ)音"""
        self.engine.setProperty('voice', self.voices[0].id)
        
    def set_speed(self, rate=150):
        """設(shè)置語(yǔ)速"""
        self.engine.setProperty('rate', rate)
        
    def set_volume(self, volume=0.8):
        """設(shè)置音量"""
        self.engine.setProperty('volume', volume)
        
    def speak(self, text, lang='cn'):
        """朗讀文本"""
        if lang == 'en':
            self.set_english()
        else:
            self.set_chinese()
        self.engine.say(text)
        self.engine.runAndWait()
        
    def save(self, text, filename='output.mp3'):
        """保存為音頻文件"""
        self.engine.save_to_file(text, filename)
        self.engine.runAndWait()

# ?? 使用示例
tts = TextToSpeech()

tts.speak("你好,歡迎使用Python文本轉(zhuǎn)語(yǔ)音!")
tts.set_speed(120)
tts.speak("This is English voice, slower speed.")
tts.save("保存的音頻測(cè)試", "test.mp3")

案例2:批量朗讀文本文件

import pyttsx3

def read_file(filepath):
    engine = pyttsx3.init()
    engine.setProperty('voice', engine.getProperty('voices')[1].id)
    
    with open(filepath, 'r', encoding='utf-8') as f:
        text = f.read()
    
    engine.say(text)
    engine.runAndWait()

# 使用
read_file("article.txt")

總結(jié)

知識(shí)點(diǎn)命令/代碼
安裝pip install pyttsx3==2.90
初始化engine = pyttsx3.init()
說話engine.say("文本")
執(zhí)行engine.runAndWait()
語(yǔ)速engine.setProperty('rate', 150)
音量engine.setProperty('volume', 0.8)
切換語(yǔ)音engine.setProperty('voice', voices[0].id)
保存文件engine.save_to_file("文本", "file.mp3")

延伸學(xué)習(xí)

庫(kù)特點(diǎn)適用場(chǎng)景
pyttsx3離線、可定制桌面應(yīng)用、嵌入式
gTTS聯(lián)網(wǎng)、音質(zhì)好在線服務(wù)、API
edge-tts微軟語(yǔ)音、自然高質(zhì)量語(yǔ)音生成
pyttsx4pyttsx3 改進(jìn)版未來(lái)替代方案

到此這篇關(guān)于從入門到實(shí)戰(zhàn)詳解Python文本轉(zhuǎn)語(yǔ)音的完全指南的文章就介紹到這了,更多相關(guān)Python文本轉(zhuǎn)語(yǔ)音內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息示例

    Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息示例

    這篇文章主要介紹了Python使用matplotlib模塊繪制圖像并設(shè)置標(biāo)題與坐標(biāo)軸等信息,結(jié)合實(shí)例形式分析了Python中matplotlib模塊進(jìn)行坐標(biāo)系圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • python ip正則式

    python ip正則式

    python下的ip正則實(shí)現(xiàn)代碼。
    2009-05-05
  • python批量修改文件編碼格式的方法

    python批量修改文件編碼格式的方法

    這篇文章主要為大家詳細(xì)介紹了python批量修改文件編碼格式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹

    Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹

    大家好,本篇文章主要講的是Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • python生成excel的實(shí)例代碼

    python生成excel的實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了python生成excel的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 深入解析Python中占位符%的使用方法

    深入解析Python中占位符%的使用方法

    在Python中,%占位符是一種強(qiáng)大的工具,用于格式化字符串,本文將深入解析Python中占位符的使用方法,包括字符串格式化、數(shù)字格式化、日期格式化等多個(gè)方面,需要的可以參考下
    2023-12-12
  • python中pandas輸出完整、對(duì)齊的表格的方法

    python中pandas輸出完整、對(duì)齊的表格的方法

    今天使用python計(jì)算數(shù)據(jù)相關(guān)性,但是發(fā)現(xiàn)計(jì)算出的表格中間好多省略號(hào),而且也不對(duì)齊。怎么解決這個(gè)問題,下面小編給大家?guī)?lái)了python中pandas如何輸出完整、對(duì)齊的表格,感興趣的朋友一起看看吧
    2021-10-10
  • Python中的元組(Tuple)操作實(shí)例詳解

    Python中的元組(Tuple)操作實(shí)例詳解

    Python?元組和列表很像,也是一個(gè)包含多個(gè)元素的集合,下面這篇文章主要給大家介紹了關(guān)于Python中元組(Tuple)操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Python字符串匹配之6種方法的使用詳解

    Python字符串匹配之6種方法的使用詳解

    這篇文章主要介紹了Python字符串匹配之6種方法的使用詳解,在文末給大家提到了python正則表達(dá)的說明,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2019-04-04
  • Win10 安裝PyCharm2019.1.1(圖文教程)

    Win10 安裝PyCharm2019.1.1(圖文教程)

    這篇文章主要介紹了Win10 安裝PyCharm2019.1.1(圖文教程),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論

科技| 河源市| 莱阳市| 长顺县| 汕头市| 丹阳市| 沛县| 临潭县| 民乐县| 明水县| 北碚区| 博白县| 雷波县| 海宁市| 湟源县| 云梦县| 大埔县| 日照市| 会宁县| 务川| 古田县| 板桥市| 义马市| 合山市| 余江县| 星座| 邯郸县| 通许县| 鄄城县| 罗城| 马公市| 上栗县| 张家港市| 九龙城区| 桑植县| 邯郸市| 洪江市| 若尔盖县| 长沙县| 中阳县| 西平县|