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

Python語音合成之第三方庫gTTs/pyttsx3/speech橫評(內(nèi)附使用方法)

 更新時間:2023年05月04日 14:40:21   作者:USST_黃鑫遠(yuǎn)  
Python是一種非常強(qiáng)大的腳本語言,可以用來實(shí)現(xiàn)各種復(fù)雜的應(yīng)用,其中之一就是文本轉(zhuǎn)語音,即把文字轉(zhuǎn)換成聲音來發(fā)出,下面這篇文章主要給大家介紹了關(guān)于Python語音合成之第三方庫gTTs/pyttsx3/speech橫評的相關(guān)資料,文中還介紹了詳細(xì)的使用方法,需要的朋友可以參考下

Python文字轉(zhuǎn)語音(調(diào)研&成品函數(shù))

由于項(xiàng)目需要, 我需要將文字轉(zhuǎn)換為語音, 那么第一步就要進(jìn)行調(diào)研

什么是語音合成技術(shù)?

語音合成(text to speech),簡稱TTS。是將文字轉(zhuǎn)化為語音的一種技術(shù),是讓計(jì)算機(jī)模擬人類的嘴巴,通過不同的音色說出想表達(dá)的內(nèi)容, 是人機(jī)對話的一部分。
TTS可以通過神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),把文字智能地轉(zhuǎn)化為自然語音流。極大的方便了視障患者的使用, 也提升了文本的可讀性。TTS應(yīng)用包括語音驅(qū)動的硬件以及聲音敏感系統(tǒng),并常與聲音識別程序一起使用。

現(xiàn)在許多廠家都推出了自己的語音合成服務(wù)或API, 大家也可以去自行查看, 本文僅做了python環(huán)境下語音合成第三方庫的調(diào)研

如何用代碼實(shí)現(xiàn)?

如前文所述, 雖然市面上產(chǎn)品繁多, 但是作為一個開發(fā)者, 我想要一款免費(fèi)的, 可代碼調(diào)試的工具, 經(jīng)過查找材料, 我找到了gTTs庫、pyttsx3庫、speech庫都能滿足我的需求, 來做個橫向?qū)Ρ? 可以讓大家少走彎路。

第三方庫名稱需要聯(lián)網(wǎng)支持中英文支持日語可調(diào)節(jié)語速像人聲程度
ggtsX很像導(dǎo)航
pyttsx3XX適合讀小說
speechXXX很像快一點(diǎn)的導(dǎo)航

gTTS庫

gTTS庫 (Google Text-to-Speech) : 用于與 Google Translate 的文本轉(zhuǎn)語音 API 進(jìn)行交互。將語音mp3數(shù)據(jù)寫入文件
優(yōu)點(diǎn) : 支持包括中英日文在內(nèi)的多種語言, 有谷歌翻譯API的加持, 人聲蠻好聽
缺點(diǎn) : 不支持語速調(diào)節(jié), 每次使用必須科學(xué)上網(wǎng), 不能單機(jī)使用

在語音播放功能, 我們選用了兩種方法

  • 第一種是playsound庫自動播放音頻(不可調(diào)播放進(jìn)度)
  • 第二種是os庫調(diào)用系統(tǒng)自帶播放器(可調(diào)節(jié)進(jìn)度)

請看playsound庫播放 & GTTS庫轉(zhuǎn)文字函數(shù)

# 函數(shù)功能: 用gtts庫閱讀文本,保存為.mp3文件后, 用系統(tǒng)內(nèi)置的瀏覽器閱讀出來, 打開mp3文件, 函數(shù)執(zhí)行結(jié)束(播放方式為os庫)
def gtts_os_debug(text,mp3_filepath,language):#參數(shù)說明:參數(shù)1是朗讀的文字,參數(shù)2是保存路徑,參數(shù)3是數(shù)字{0英文,1中文,2日語}
    #大成功,可惜的是os調(diào)用自帶播放器, 實(shí)際上只執(zhí)行了"打開mp3"的操作, 它并不會在音頻播報完后再進(jìn)行下一條語句
    from gtts import gTTS
    import os
    # 已知zh-tw版本違和感較高,所以我們用zh-CN來進(jìn)行后續(xù)工作
    if int(language) ==0 :
        s = gTTS(text=text, lang='en', tld='com')
        # s = gTTS(text=text, lang='en', tld='co.uk')#我比較喜歡美音,但是如果你喜歡英國口音可以嘗試這個
    elif int(language) ==1 :
        s = gTTS(text=text, lang='zh-CN')
    elif int(language) ==2 :
        s = gTTS(text=text, lang='ja')
    try:
        s.save(mp3_filepath)
    except:
        os.remove(mp3_filepath)
        print(mp3_filepath,"文件已經(jīng)存在,但是沒有關(guān)系!已經(jīng)刪掉了")
        s.save(mp3_filepath)
    print(mp3_filepath,"保存成功")
    os.system(mp3_filepath)#調(diào)用系統(tǒng)自帶的播放器播放MP3
gtts_os_debug(text="I'm gtts library,from google Artificial Intelligence & Google Translate.",mp3_filepath="gtts英文測試.mp3",language=0)
gtts_os_debug(text="我是gtts庫, 你想聽聽我的聲音嗎",mp3_filepath="gtts中文測試.mp3",language=1)
gtts_os_debug(text="真実はいつもひとつ" ,mp3_filepath="gtts日語測試.mp3",language=2)

請看os庫播放 & GTTS庫轉(zhuǎn)文字函數(shù)

# 函數(shù)功能: 用gtts庫閱讀文本,保存為.mp3文件后, 用playsound庫閱讀出來, 閱讀完畢, 函數(shù)執(zhí)行結(jié)束
def gtts_debug(text,mp3_filepath,language):#參數(shù)說明:參數(shù)1是朗讀的文字,參數(shù)2是保存路徑,參數(shù)3是數(shù)字{0英文,1中文,2日語}
    #大成功,已經(jīng)實(shí)現(xiàn)了定制化文字轉(zhuǎn)語音,但是播放的playsound需要改進(jìn)(playsound庫本身可能會出現(xiàn)bug...)
    from gtts import gTTS
    from playsound import playsound
    import os
    if int(language) ==0 :
        s = gTTS(text=text, lang='en', tld='com')
        # s = gTTS(text=text, lang='en', tld='co.uk')#我比較喜歡美音,但是如果你喜歡英國口音可以嘗試這個
    elif int(language) ==1 :
        s = gTTS(text=text, lang='zh-CN')
    elif int(language) ==2 :
        s = gTTS(text=text, lang='ja')
    try:
        s.save(mp3_filepath)
    except:
        os.remove(mp3_filepath)
        print(mp3_filepath,"文件已經(jīng)存在,但是沒有關(guān)系!已經(jīng)刪掉了")
        s.save(mp3_filepath)
    print(mp3_filepath,"保存成功")
    playsound(mp3_filepath)
gtts_debug(text="I'm gtts library,from google Artificial Intelligence & Google Translate.",mp3_filepath="gtts英文測試.mp3",language=0)
gtts_debug(text="我是gtts庫, 你想聽聽我的聲音嗎",mp3_filepath="gtts中文測試.mp3",language=1)
gtts_debug(text="真実はいつもひとつ" ,mp3_filepath="gtts日語測試.mp3",language=2)

pyttsx3庫

pyttsx3庫 : 是Python中的文本到語音轉(zhuǎn)換庫, 它可以脫機(jī)工作
優(yōu)點(diǎn) : 可以脫機(jī)工作, 支持將語音直接朗讀, 可調(diào)節(jié)音量和速度
缺點(diǎn) : 初始只有英語(女)和中文(女)的語音包, 其他語言的語音包需要另外下載

請看pyttsx3庫轉(zhuǎn)文字&自朗讀函數(shù)

def pyttsx3_debug(text,language,rate,volume,filename,sayit=0):
    #參數(shù)說明: 六個重要參數(shù),閱讀的文字,語言(0-英文/1-中文),語速,音量(0-1),保存的文件名(以.mp3收尾),是否發(fā)言(0否1是)
    import pyttsx3
    engine = pyttsx3.init()  # 初始化語音引擎
    engine.setProperty('rate', rate)  # 設(shè)置語速
    #速度調(diào)試結(jié)果:50戲劇化的慢,200正常,350用心聽小說,500敷衍了事
    engine.setProperty('volume', volume)  # 設(shè)置音量
    voices = engine.getProperty('voices')  # 獲取當(dāng)前語音的詳細(xì)信息
    if int(language)==0:
        engine.setProperty('voice', voices[0].id)  # 設(shè)置第一個語音合成器 #改變索引,改變聲音。0中文,1英文(只有這兩個選擇)
    elif int(language)==1:
        engine.setProperty('voice', voices[1].id)
    if int(sayit)==1:
        engine.say(text)  # pyttsx3->將結(jié)果念出來
    elif int(sayit)==0:
        print("那我就不念了哈")
    engine.save_to_file(text, filename) # 保存音頻文件
    print(filename,"保存成功")
    engine.runAndWait() # pyttsx3結(jié)束語句(必須加)
    engine.stop() # pyttsx3結(jié)束語句(必須加)
pyttsx3_debug(text="我是pyttsx3, 初次見面, 給您拜個早年",language=0,rate=200,volume=0.9,filename="ptttsx3中文測試.mp3",sayit=1)
pyttsx3_debug(text="I'm fake Siri, your smart voice Manager",language=1,rate=200,volume=0.9,filename="ptttsx3英文測試.mp3",sayit=1)

speech庫

speech : 基于Windows的語音合成模塊, 一行代碼即可實(shí)現(xiàn)朗讀
優(yōu)點(diǎn) : 依靠windows系統(tǒng), 安裝使用究極簡單 , 超級方便。
適合在代碼調(diào)試過程中, 讓冰冷的AI語言來罵醒寫bug的我QAQ
缺點(diǎn) : 只有系統(tǒng)語言(中文&英文), 不支持語速調(diào)節(jié)和音頻導(dǎo)出

請看speech轉(zhuǎn)文字函數(shù)

import speech
speech.say("甘霖娘,又出bug了")
speech.say("Don't ask me .I have no idea why bug exist again")
# 如你所見, 代碼編譯究極簡單, 而且單機(jī), 但是!每次使用都會呼出微軟語音助手...

恭喜你, 你已經(jīng)學(xué)會了Python文字轉(zhuǎn)語音的全部內(nèi)容了

可惜的是, 本博文沒有收錄諸如百度API/訊飛API等...商務(wù)的文字轉(zhuǎn)語音方式

總結(jié)

到此這篇關(guān)于Python語音合成之第三方庫gTTs/pyttsx3/speech橫評的文章就介紹到這了,更多相關(guān)Python語音合成gTTs/pyttsx3/speech內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解python使用遞歸、尾遞歸、循環(huán)三種方式實(shí)現(xiàn)斐波那契數(shù)列

    詳解python使用遞歸、尾遞歸、循環(huán)三種方式實(shí)現(xiàn)斐波那契數(shù)列

    本篇文章主要介紹了python使用遞歸、尾遞歸、循環(huán)三種方式實(shí)現(xiàn)斐波那契數(shù)列,非常具有實(shí)用價值,需要的朋友可以參考下
    2018-01-01
  • Python常用類型轉(zhuǎn)換實(shí)現(xiàn)代碼實(shí)例

    Python常用類型轉(zhuǎn)換實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Python常用類型轉(zhuǎn)換實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python+pyecharts繪制交互式可視化圖表

    Python+pyecharts繪制交互式可視化圖表

    本文我們來了解一個新的可視化模塊pyecharts,并且利用該模塊繪制讓數(shù)據(jù)變成優(yōu)美的交互式可視化圖表,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-04-04
  • pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作

    pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作

    這篇文章主要介紹了pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Golang GBK轉(zhuǎn)UTF-8的例子

    Golang GBK轉(zhuǎn)UTF-8的例子

    今天小編就為大家分享一篇Golang GBK轉(zhuǎn)UTF-8的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python圖片批量自動摳圖去背景的代碼詳解

    Python圖片批量自動摳圖去背景的代碼詳解

    這篇文章主要介紹了Python圖片批量自動摳圖去背景,只要上傳圖片,就可以自動把背景去掉把目標(biāo)對象摳出來,非常方便,對Python圖片批量自動摳圖去背景的代碼感興趣的朋友一起看看吧
    2022-03-03
  • 簡單探討一下python線程鎖

    簡單探討一下python線程鎖

    本文主要介紹了簡單探討一下python線程鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python+matplotlib繪制多子圖的方法詳解

    Python+matplotlib繪制多子圖的方法詳解

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是?Python常用的2D繪圖庫,同時它也提供了一部分3D繪圖接口。本文將詳細(xì)介紹如何通過Matplotlib繪制多子圖,需要的可以參考一下
    2022-07-07
  • 基于Python實(shí)現(xiàn)搶注大詞的提詞工具

    基于Python實(shí)現(xiàn)搶注大詞的提詞工具

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)搶注大詞的提詞工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • python使用BeautifulSoup與正則表達(dá)式爬取時光網(wǎng)不同地區(qū)top100電影并對比

    python使用BeautifulSoup與正則表達(dá)式爬取時光網(wǎng)不同地區(qū)top100電影并對比

    這篇文章主要給大家介紹了關(guān)于python使用BeautifulSoup與正則表達(dá)式爬取時光網(wǎng)不同地區(qū)top100電影并對比的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

即墨市| 周口市| 南充市| 开化县| 双峰县| 什邡市| 盐源县| 柯坪县| 库车县| 巩留县| 探索| 科技| 塘沽区| 科尔| 游戏| 安塞县| 通州区| 搜索| 仲巴县| 汽车| 平凉市| 万荣县| 宁蒗| 天全县| 新泰市| 高邮市| 滨海县| 寻甸| 江川县| 曲水县| 青神县| 溧水县| 工布江达县| 榆中县| 巢湖市| 太仓市| 临沧市| 黄浦区| 刚察县| 海盐县| 藁城市|