欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一、pyttsx3法

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

首先,需要在cmd下安裝這個模塊:

pip install pyttsx3

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

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

設置完成之后,們可以定義一個函數(shù),當需要調用這個模型進行發(fā)聲時,就可以調用這個函數(shù)。

def show_sound(text):
   engine.say(text)#朗讀當前內容
   engine.runAndWait() #朗讀直到結束
   engine.stop() #停止引擎

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

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

二、轉化為語音流的方法

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

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

pip install requests, pygame

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

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

安裝完后,我們導入模型,初始化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) #獲取二進制數(shù)據(jù)
    audio_data = BytesIO(resp.content) #轉化為音頻流
    pygame.mixer.music.load(audio_data) #加載音頻流
    pygame.mixer.music.play() #播放音頻
    while pygame.mixer.music.get_busy(): #確保完全讀完,不間斷
       continue

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

三、讀取本地mp3法

讀取本地mp3這種方法比較穩(wěn)妥,適用于沒有網絡情況下也能朗讀的情況,但是本地得用對應的語音庫才可以。我們可以使用pygame和pydub這兩個模型分別來實現(xiàn)。

1. pygame法

這種方法和第二種方法差不多,只不過不用獲取網絡的音頻了,直接讀取本地音頻就可以了。

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文件的路徑。然后運行該腳本,它將會播放指定的MP3文件。

2. pydub法

pydub可能會比pygame個頭小一點兒,打包時更省力,以下給出一個樣例代碼,供大家參考。

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

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文件的路徑。然后運行該腳本,它將會播放指定的MP3文件。

四、學后反思

學習Python要掌握使用chatgpt等人工智能技術,有好的想法就多向它請教,爭取能夠找到更優(yōu)的方案。

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

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

相關文章

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

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

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

    Python一些基本的圖像操作和處理總結

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

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

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

    Python實現(xiàn)簡單的猜單詞

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

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

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

    python內存管理分析

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

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

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

    pymysql模塊的操作實例

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

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

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

    python使用UDP實現(xiàn)客戶端和服務器對話

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

最新評論