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

Python使用pyttsx3庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音的完整教程

 更新時(shí)間:2026年05月20日 08:16:49   作者:detayun  
本文詳細(xì)介紹了Python文本轉(zhuǎn)語(yǔ)音庫(kù)pyttsx3的完整使用指南,主要內(nèi)容包括pyttsx3的特點(diǎn),安裝方法,快速入門(mén)示例等內(nèi)容,希望可以幫助開(kāi)發(fā)者快速掌握pyttsx3的使用技巧

從安裝到實(shí)戰(zhàn),一篇搞定!支持中英文,附完整代碼示例

pyttsx3 是什么

pyttsx3 是 Python 最流行的 離線文本轉(zhuǎn)語(yǔ)音(TTS)庫(kù)。

核心特點(diǎn)

特性說(shuō)明
離線運(yùn)行無(wú)需聯(lián)網(wǎng),無(wú)需API
支持中文完美支持中英文
跨平臺(tái)Windows / Mac / Linux
速度快實(shí)時(shí)語(yǔ)音合成
可定制語(yǔ)速、音量、語(yǔ)音均可調(diào)

安裝步驟

方式1:pip 安裝(推薦)

# 基礎(chǔ)安裝
pip install pyttsx3
# Windows 用戶額外安裝(必須?。?
pip install pypiwin32
# 如果遇到版本問(wèn)題,使用穩(wěn)定版
pip install pyttsx3==2.90

方式2:虛擬環(huán)境安裝(最佳實(shí)踐)

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

驗(yàn)證安裝

import pyttsx3
print(pyttsx3.__version__)  # 應(yīng)輸出 2.90 或更高

快速開(kāi)始(3行代碼)

import pyttsx3

engine = pyttsx3.init()
engine.say("Hello, 我是Python!")
engine.runAndWait()

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

核心參數(shù)詳解

參數(shù)1:調(diào)整音量(0.0 ~ 1.0)

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.5)  # 50% 音量

engine.say("這是半音量的語(yǔ)音")
engine.runAndWait()
音量值效果
0.0?? 靜音
0.3?? 小聲
0.7?? 正常
1.0?? 最大

參數(shù)2:調(diào)整語(yǔ)速(50 ~ 300)

import pyttsx3

engine = pyttsx3.init()

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

# 設(shè)置語(yǔ)速
engine.setProperty('rate', 150)  # 變慢
engine.say("這是慢速語(yǔ)音")
engine.runAndWait()

engine.setProperty('rate', 250)  # 變快
engine.say("這是快速語(yǔ)音")
engine.runAndWait()
語(yǔ)速值效果
50?? 極慢(像樹(shù)懶)
150?? 慢速(適合教學(xué))
200?? 默認(rèn)(正常說(shuō)話)
300?? 極快(像松鼠)

參數(shù)3:切換語(yǔ)音(中英文)

import pyttsx3

engine = pyttsx3.init()

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

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

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

輸出示例(Windows)

[0] Microsoft David
    ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0

[1] Microsoft Huihui
    ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0

進(jìn)階功能

功能1:保存為音頻文件

import pyttsx3

engine = pyttsx3.init()

# 保存為 MP3 文件
engine.save_to_file("你好,這是保存的音頻", "output.mp3")
engine.runAndWait()

print("? 音頻已保存到 output.mp3")

功能2:暫停和繼續(xù)

import pyttsx3

engine = pyttsx3.init()

engine.say("這是第一句")
engine.runAndWait()

engine.say("這是第二句")
engine.runAndWait()

# 暫停
engine.stop()

# 繼續(xù)(需要重新初始化)
engine = pyttsx3.init()
engine.say("這是第三句")
engine.runAndWait()

功能3:批量朗讀文本

import pyttsx3

def read_text(text, lang='cn'):
    engine = pyttsx3.init()
    
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[1].id if lang == 'cn' else voices[0].id)
    engine.setProperty('rate', 150)
    
    engine.say(text)
    engine.runAndWait()

# 批量朗讀
texts = [
    "第一句:Python真好用",
    "第二句:文本轉(zhuǎn)語(yǔ)音太酷了",
    "第三句:Hello World"
]

for text in texts:
    read_text(text)

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

案例1:智能語(yǔ)音助手類(lèi)

import pyttsx3

class VoiceAssistant:
    def __init__(self):
        self.engine = pyttsx3.init()
        self.voices = self.engine.getProperty('voices')
        
    def speak(self, text, lang='cn', rate=150, volume=0.8):
        """通用朗讀方法"""
        # 設(shè)置語(yǔ)音
        voice_id = self.voices[1].id if lang == 'cn' else self.voices[0].id
        self.engine.setProperty('voice', voice_id)
        
        # 設(shè)置參數(shù)
        self.engine.setProperty('rate', rate)
        self.engine.setProperty('volume', volume)
        
        # 朗讀
        self.engine.say(text)
        self.engine.runAndWait()
    
    def speak_cn(self, text):
        """中文朗讀"""
        self.speak(text, lang='cn')
    
    def speak_en(self, text):
        """英文朗讀"""
        self.speak(text, lang='en')
    
    def save_audio(self, text, filename):
        """保存音頻"""
        self.engine.save_to_file(text, filename)
        self.engine.runAndWait()

# ?? 使用示例
assistant = VoiceAssistant()

assistant.speak_cn("你好,我是你的智能語(yǔ)音助手!")
assistant.speak_en("Hello, I am your voice assistant!")
assistant.save_audio("測(cè)試保存", "test.mp3")

案例2:閱讀器(朗讀文本文件)

import pyttsx3

def read_file(filepath, lang='cn'):
    """朗讀文本文件"""
    try:
        with open(filepath, 'r', encoding='utf-8') as f:
            text = f.read()
        
        engine = pyttsx3.init()
        voices = engine.getProperty('voices')
        
        voice_id = voices[1].id if lang == 'cn' else voices[0].id
        engine.setProperty('voice', voice_id)
        engine.setProperty('rate', 150)
        
        engine.say(text)
        engine.runAndWait()
        
        print(f"? 已朗讀文件: {filepath}")
        
    except FileNotFoundError:
        print(f"? 文件不存在: {filepath}")

# 使用
read_file("article.txt", lang='cn')

案例3:語(yǔ)音鬧鐘

import pyttsx3
import time

def voice_alarm(hour, minute, message):
    """語(yǔ)音鬧鐘"""
    engine = pyttsx3.init()
    engine.setProperty('rate', 180)
    engine.setProperty('volume', 1.0)
    
    while True:
        now = time.localtime()
        if now.tm_hour == hour and now.tm_min == minute:
            engine.say(f"鬧鐘響了!{message}")
            engine.runAndWait()
            break
        time.sleep(30)  # 每30秒檢查一次

# 設(shè)置早上7:30的鬧鐘
voice_alarm(7, 30, "起床啦!新的一天開(kāi)始了!")

常見(jiàn)錯(cuò)誤及解決方案

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

原因:Python 版本 < 3.8

解決

pip install pyttsx3==2.90

錯(cuò)誤2:_ctypes.COMError: (-2147200966, ...)

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

解決

import pyttsx3

engine = pyttsx3.init()

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

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

錯(cuò)誤3:KeyError: None

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

解決

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

錯(cuò)誤4:沒(méi)有中文語(yǔ)音

解決

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

總結(jié)速查表

操作代碼
初始化engine = pyttsx3.init()
說(shuō)話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")
查看語(yǔ)音voices = engine.getProperty('voices')

延伸推薦

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

到此這篇關(guān)于Python使用pyttsx3庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音的完整教程的文章就介紹到這了,更多相關(guān)Python pyttsx3文本轉(zhuǎn)語(yǔ)音內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python三元表達(dá)式的基本用法詳解

    Python三元表達(dá)式的基本用法詳解

    Python的三元表達(dá)式是一種緊湊、簡(jiǎn)潔的條件表達(dá)式,允許在一行代碼中根據(jù)條件選擇不同的值,三元表達(dá)式通常用于需要在單行中根據(jù)條件進(jìn)行值選擇的情況,有助于提高代碼的可讀性和簡(jiǎn)潔性,本文給大家介紹了Python三元表達(dá)式的基本用法,需要的朋友可以參考下
    2023-10-10
  • Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

    Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

    這篇文章主要介紹了Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Tensorflow實(shí)現(xiàn)部分參數(shù)梯度更新操作

    Tensorflow實(shí)現(xiàn)部分參數(shù)梯度更新操作

    今天小編就為大家分享一篇Tensorflow實(shí)現(xiàn)部分參數(shù)梯度更新操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • numpy.sum()坐標(biāo)軸問(wèn)題的解決

    numpy.sum()坐標(biāo)軸問(wèn)題的解決

    本文主要介紹了numpy.sum()坐標(biāo)軸問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 基于pytorch中的Sequential用法說(shuō)明

    基于pytorch中的Sequential用法說(shuō)明

    這篇文章主要介紹了基于pytorch中的Sequential用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python中文分詞工具之結(jié)巴分詞用法實(shí)例總結(jié)【經(jīng)典案例】

    Python中文分詞工具之結(jié)巴分詞用法實(shí)例總結(jié)【經(jīng)典案例】

    這篇文章主要介紹了Python中文分詞工具之結(jié)巴分詞用法,結(jié)合實(shí)例形式總結(jié)分析了Python針對(duì)中文文件的讀取與分詞操作過(guò)程中遇到的問(wèn)題與解決方法,需要的朋友可以參考下
    2017-04-04
  • Python 字典判斷空的解決方案

    Python 字典判斷空的解決方案

    這段代碼定義了一個(gè)使用Any類(lèi)型注解的字典task_map,并通過(guò)條件判斷檢查它是否為空,如果為空,則打印1111,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • python中seaborn包常用圖形使用詳解

    python中seaborn包常用圖形使用詳解

    今天小編就為大家分享一篇python中seaborn包常用圖形使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)

    Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)

    Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架, 使用Python編寫(xiě)。Flask也被稱為 “microframework” ,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能。
    2014-06-06
  • DJANGO-ALLAUTH社交用戶系統(tǒng)的安裝配置

    DJANGO-ALLAUTH社交用戶系統(tǒng)的安裝配置

    django-allauth是集成了local用戶系統(tǒng)和social用戶系統(tǒng),其social用戶系統(tǒng)可以掛載多個(gè)賬戶。也是一個(gè)流行度非常高的Django user系統(tǒng),我們這里簡(jiǎn)單介紹下,分享下個(gè)人的使用經(jīng)驗(yàn)
    2014-11-11

最新評(píng)論

金湖县| 修水县| 黑水县| 博罗县| 双辽市| 宾阳县| 乌海市| 黔江区| 兴安盟| 怀宁县| 桐柏县| 岑溪市| 昆山市| 大埔县| 沭阳县| 克拉玛依市| 宁化县| 厦门市| 仪征市| 长春市| 民乐县| 筠连县| 商丘市| 麻栗坡县| 远安县| 无极县| 朝阳县| 松阳县| 呼玛县| 全州县| 西城区| 灵山县| 元谋县| 宝丰县| 武邑县| 台中市| 孟津县| 东莞市| 武川县| 安国市| 宁明县|