Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan gTTs/pyttsx3/speech pustaka pihak ketiga Python

Cara menggunakan gTTs/pyttsx3/speech pustaka pihak ketiga Python

WBOY
WBOYke hadapan
2023-05-12 18:43:062399semak imbas

Teks python kepada pertuturan (penyelidikan & fungsi selesai)

Disebabkan keperluan projek, saya perlu menukar teks kepada pertuturan, jadi langkah pertama ialah menjalankan penyelidikan

Apakah itu teknologi sintesis pertuturan?

Teks kepada pertuturan (teks kepada pertuturan), dirujuk sebagai TTS. Ia adalah teknologi yang menukar teks kepada pertuturan Ia membolehkan komputer mensimulasikan mulut manusia dan menyatakan apa yang ingin diungkapkan melalui timbre yang berbeza Ia adalah sebahagian daripada dialog manusia-komputer.
TTS boleh menukar teks secara bijak kepada aliran pertuturan semula jadi melalui reka bentuk rangkaian saraf. Ia sangat memudahkan penggunaan pesakit cacat penglihatan dan juga meningkatkan kebolehbacaan teks . Aplikasi TTS termasuk perkakasan dipacu pertuturan dan sistem sensitif bunyi, dan sering digunakan dengan program pengecaman suara.

Kini banyak pengeluar telah melancarkan perkhidmatan sintesis pertuturan atau API mereka sendiri Anda juga boleh menyemaknya sendiri Artikel ini hanya menjalankan penyelidikan tentang perpustakaan sintesis pertuturan pihak ketiga dalam persekitaran ular sawa.

Bagaimana untuk melaksanakannya dengan kod?

Seperti yang dinyatakan di atas, walaupun terdapat banyak produk di pasaran,

sebagai pembangun, saya mahukan alat percuma yang boleh nyahpepijat kod , Selepas mencari bahan, saya mendapati perpustakaan gTTs, pustaka pyttsx3 dan pustaka pertuturan boleh memenuhi keperluan saya. Mari buat perbandingan mendatar, yang boleh membantu semua orang mengelakkan lencongan.

第三方库名称 需要联网 支持中英文 支持日语 可调节语速 像人声程度
ggts X 很像导航
pyttsx3 X X 适合读小说
speech X X X 很像快一点的导航
Perpustakaan gTTS

Perpustakaan gTTS (Teks-ke-Pertuturan Google): Digunakan untuk berinteraksi dengan API teks-ke-pertuturan Terjemahan Google. Tulis data mp3 suara ke failKelebihan: Menyokong berbilang bahasa termasuk bahasa Cina, Inggeris dan Jepun, disokong oleh API Terjemahan Google, suara manusia cukup bagus
Kelemahan: Tidak menyokong pelarasan kelajuan pertuturan, mesti digunakan setiap kali Internet Saintifik, tidak boleh digunakan secara bersendirian
Dalam fungsi main balik suara, kami telah memilih dua kaedah

  • Yang pertama ialah memainkan audio secara automatik dalam perpustakaan bunyi mainan (kemajuan main balik tidak boleh dilaraskan)

  • Yang kedua ialah perpustakaan os memanggil pemain sistem sendiri (kemajuan boleh laras)

Sila lihat

mainan perpustakaan bunyi& perpustakaan GTTS ke teksFungsi

# 函数功能: 用gtts库阅读文本,保存为.mp3文件后, 用系统内置的浏览器阅读出来, 打开mp3文件, 函数执行结束(播放方式为os库)
def gtts_os_debug(text,mp3_filepath,language):#参数说明:参数1是朗读的文字,参数2是保存路径,参数3是数字{0英文,1中文,2日语}
    #大成功,可惜的是os调用自带播放器, 实际上只执行了"打开mp3"的操作, 它并不会在音频播报完后再进行下一条语句
    from gtts import gTTS
    import os
    # 已知zh-tw版本违和感较高,所以我们用zh-CN来进行后续工作
    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,"文件已经存在,但是没有关系!已经删掉了")
        s.save(mp3_filepath)
    print(mp3_filepath,"保存成功")
    os.system(mp3_filepath)#调用系统自带的播放器播放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)

Sila lihat

mainan perpustakaan os & perpustakaan GTTS ke teksFungsi

# 函数功能: 用gtts库阅读文本,保存为.mp3文件后, 用playsound库阅读出来, 阅读完毕, 函数执行结束
def gtts_debug(text,mp3_filepath,language):#参数说明:参数1是朗读的文字,参数2是保存路径,参数3是数字{0英文,1中文,2日语}
    #大成功,已经实现了定制化文字转语音,但是播放的playsound需要改进(playsound库本身可能会出现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,"文件已经存在,但是没有关系!已经删掉了")
        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)

perpustakaan pyttsx3

perpustakaan pyttsx3: Ia ialah perpustakaan penukaran teks ke pertuturan dalam Python, ia boleh berfungsi di luar talianKelebihan: Boleh berfungsi di luar talian, menyokong bacaan pertuturan langsung, kelantangan dan kelajuan boleh laras
Kelemahan: Pada mulanya hanya dalam pek suara Inggeris (Perempuan) dan Cina (Perempuan), pek suara dalam bahasa lain perlu dimuat turun secara berasingan
Sila lihat

pustaka pyttsx3 untuk menukar teks & bacaan sendiri Fungsi

def pyttsx3_debug(text,language,rate,volume,filename,sayit=0):
    #参数说明: 六个重要参数,阅读的文字,语言(0-英文/1-中文),语速,音量(0-1),保存的文件名(以.mp3收尾),是否发言(0否1是)
    import pyttsx3
    engine = pyttsx3.init()  # 初始化语音引擎
    engine.setProperty('rate', rate)  # 设置语速
    #速度调试结果:50戏剧化的慢,200正常,350用心听小说,500敷衍了事
    engine.setProperty('volume', volume)  # 设置音量
    voices = engine.getProperty('voices')  # 获取当前语音的详细信息
    if int(language)==0:
        engine.setProperty('voice', voices[0].id)  # 设置第一个语音合成器 #改变索引,改变声音。0中文,1英文(只有这两个选择)
    elif int(language)==1:
        engine.setProperty('voice', voices[1].id)
    if int(sayit)==1:
        engine.say(text)  # pyttsx3->将结果念出来
    elif int(sayit)==0:
        print("那我就不念了哈")
    engine.save_to_file(text, filename) # 保存音频文件
    print(filename,"保存成功")
    engine.runAndWait() # pyttsx3结束语句(必须加)
    engine.stop() # pyttsx3结束语句(必须加)
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)

Perpustakaan pertuturan

ucapan: Modul sintesis pertuturan berasaskan Windows, satu baris kod boleh merealisasikan bacaanKelebihan: Bergantung pada sistem Windows , pemasangan dan penggunaan adalah sangat mudah dan sangat mudah.
Sesuai untuk penyahpepijatan kod, membiarkan bahasa AI yang sejuk menyedarkan saya daripada menulis pepijat QAQ
Kelemahan: Hanya bahasa sistem (Cina & Inggeris), tidak menyokong pelarasan kelajuan pertuturan dan eksport audio
Sila lihat fungsi

ucapan ke teks

import speech
speech.say("甘霖娘,又出bug了")
speech.say("Don't ask me .I have no idea why bug exist again")
# 如你所见, 代码编译究极简单, 而且单机, 但是!每次使用都会呼出微软语音助手...

Atas ialah kandungan terperinci Cara menggunakan gTTs/pyttsx3/speech pustaka pihak ketiga Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam