亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)朗讀在線音頻和本地音頻

 更新時(shí)間:2024年03月14日 15:23:21   作者:PythonFun  
在日常的Python軟件開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到一個(gè)非常重要的功能需求——讓程序能夠讀取并顯示文本內(nèi)容,下面我們就來(lái)學(xué)習(xí)一下Python實(shí)現(xiàn)朗讀音頻的具體操作吧

在日常的Python軟件開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到一個(gè)非常重要的功能需求——讓程序能夠讀取并顯示文本內(nèi)容。那么,如何實(shí)現(xiàn)這一功能呢?本文將提供幾種方法供大家參考,其中第二種方法是最推薦的。

一、pyttsx3法

采用這個(gè)第三方模塊,可以實(shí)現(xiàn)python軟件朗讀文本。

首先,需要在cmd下安裝這個(gè)模塊:

pip install pyttsx3

然后,就可以通過(guò)初始化發(fā)聲引擎,然后定義引擎的聲音大小、語(yǔ)速。

engine = pyttsx3.init()
#設(shè)置語(yǔ)速
rate = engine.getProperty('rate')
engine.setProperty('rate', rate - 50)
# 設(shè)置發(fā)音大小,范圍為0.0-1.0
volume = engine.getProperty('volume')
engine.setProperty('volume', 1.2)
# 設(shè)置默認(rèn)的聲音:voices[0].id代表男生,voices[1].id代表女生
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)

設(shè)置完成之后,們可以定義一個(gè)函數(shù),當(dāng)需要調(diào)用這個(gè)模型進(jìn)行發(fā)聲時(shí),就可以調(diào)用這個(gè)函數(shù)。

def show_sound(text):
   engine.say(text)#朗讀當(dāng)前內(nèi)容
   engine.runAndWait() #朗讀直到結(jié)束
   engine.stop() #停止引擎

上面的示例中,你需要把text換成你要讀取的內(nèi)容就可以了。

這種方法調(diào)用的引擎聲音大小可以調(diào),但是音質(zhì)一般,有點(diǎn)兒僵化,需要我們采用更為好的音頻才可以。

二、轉(zhuǎn)化為語(yǔ)音流的方法

之前,我的思路是,把單詞的音頻下載到本地,然后再調(diào)用。這種方法的優(yōu)點(diǎn)時(shí)音質(zhì)好,缺點(diǎn)是需要一定的下載時(shí)間,有時(shí)我們需要即時(shí)的調(diào)用,就顯得不太方便,因此我就想先通過(guò)requests獲取這個(gè)音頻,然后轉(zhuǎn)化為語(yǔ)音流,再用pygame讀出來(lái),經(jīng)過(guò)與chatgpt對(duì)話,發(fā)現(xiàn)我這種方法果然有效。

使用這種方法需要安裝requests和pygame兩個(gè)第三方模型。

pip install requests, pygame

其中pygame的個(gè)頭較大,如果可以的話用鏡像下載速度會(huì)更快一些。比如:

pip install pygame -i https://mirrors.aliyun.com/pypi/simple/

安裝完后,我們導(dǎo)入模型,初始化pygame, 定義函數(shù)。

import requests
import pygame
from io import BytesIO
pygame.init() #初始化pygame
def show_sound(text):
    audio_path = f"https://dict.youdao.com/dictvoice?audio={text}&type=1" #獲取音頻地址
    resp = requests.get(audio_path) #獲取二進(jìn)制數(shù)據(jù)
    audio_data = BytesIO(resp.content) #轉(zhuǎn)化為音頻流
    pygame.mixer.music.load(audio_data) #加載音頻流
    pygame.mixer.music.play() #播放音頻
    while pygame.mixer.music.get_busy(): #確保完全讀完,不間斷
       continue

上面的示例中,你需要把text換成你要讀取的內(nèi)容就可以了。

三、讀取本地mp3法

讀取本地mp3這種方法比較穩(wěn)妥,適用于沒(méi)有網(wǎng)絡(luò)情況下也能朗讀的情況,但是本地得用對(duì)應(yīng)的語(yǔ)音庫(kù)才可以。我們可以使用pygame和pydub這兩個(gè)模型分別來(lái)實(shí)現(xiàn)。

1. pygame法

這種方法和第二種方法差不多,只不過(guò)不用獲取網(wǎng)絡(luò)的音頻了,直接讀取本地音頻就可以了。

import pygame
 
def play_mp3(file_path):
    pygame.mixer.init()
    pygame.mixer.music.load(file_path)
    pygame.mixer.music.play()
 
if __name__ == "__main__":
    mp3_file = "your_file_path.mp3"  # 替換為你的MP3文件路徑
    play_mp3(mp3_file)

在上面示例中,你需要將your_file_path.mp3替換為你本地MP3文件的路徑。然后運(yùn)行該腳本,它將會(huì)播放指定的MP3文件。

2. pydub法

pydub可能會(huì)比pygame個(gè)頭小一點(diǎn)兒,打包時(shí)更省力,以下給出一個(gè)樣例代碼,供大家參考。

首先還是需要安裝pygdub這個(gè)第三方模塊:

pip install pydub

然后,利用下面的代碼:

from pydub import AudioSegment
from pydub.playback import play
 
def play_mp3(file_path):
    sound = AudioSegment.from_mp3(file_path)
    play(sound)
 
if __name__ == "__main__":
    mp3_file = "your_file_path.mp3"  # 替換為你的MP3文件路徑
    play_mp3(mp3_file)

在上面的示例中,你需要將your_file_path.mp3替換為你本地MP3文件的路徑。然后運(yùn)行該腳本,它將會(huì)播放指定的MP3文件。

四、學(xué)后反思

學(xué)習(xí)Python要掌握使用chatgpt等人工智能技術(shù),有好的想法就多向它請(qǐng)教,爭(zhēng)取能夠找到更優(yōu)的方案。

優(yōu)質(zhì)的音頻可以通過(guò)在線字典獲取,只要知道它的下載地址就可以通過(guò)requests來(lái)獲取。

到此這篇關(guān)于Python實(shí)現(xiàn)朗讀在線音頻和本地音頻的文章就介紹到這了,更多相關(guān)Python朗讀音頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python循環(huán)控制之break和continue流程控制語(yǔ)句

    python循環(huán)控制之break和continue流程控制語(yǔ)句

    這篇文章主要介紹了python循環(huán)控制之break流程控制語(yǔ)句,Python中提供了兩個(gè)關(guān)鍵字用來(lái)控制循環(huán)語(yǔ)句,分別是break和continue,本文都有介紹,需要的朋友可以參考一下
    2022-03-03
  • Python一些基本的圖像操作和處理總結(jié)

    Python一些基本的圖像操作和處理總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python圖像操作和處理展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python中typing模塊與類型注解的使用方法

    Python中typing模塊與類型注解的使用方法

    這篇文章主要給大家介紹了關(guān)于Python中typing模塊與類型注解的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞

    Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • pandas中fillna()函數(shù)填充NaN和None的實(shí)現(xiàn)

    pandas中fillna()函數(shù)填充NaN和None的實(shí)現(xiàn)

    本文主要介紹了pandas中fillna()函數(shù)填充NaN和None的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • python內(nèi)存管理分析

    python內(nèi)存管理分析

    這篇文章主要介紹了python內(nèi)存管理,較為詳細(xì)的分析了Python的內(nèi)存管理機(jī)制,需要的朋友可以參考下
    2015-04-04
  • numpy添加新的維度:newaxis的方法

    numpy添加新的維度:newaxis的方法

    今天小編就為大家分享一篇numpy添加新的維度:newaxis的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • pymysql模塊的操作實(shí)例

    pymysql模塊的操作實(shí)例

    在本篇文章里小編給大家分享的是關(guān)于pymysql模塊的簡(jiǎn)單操作,有需要的朋友們可以參考下。
    2019-12-12
  • Python實(shí)現(xiàn)最常見(jiàn)加密方式詳解

    Python實(shí)現(xiàn)最常見(jiàn)加密方式詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)最常見(jiàn)加密方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python使用UDP實(shí)現(xiàn)客戶端和服務(wù)器對(duì)話

    python使用UDP實(shí)現(xiàn)客戶端和服務(wù)器對(duì)話

    這篇文章主要為大家介紹了python使用UDP實(shí)現(xiàn)客戶端和服務(wù)器對(duì)話示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論