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

python常見讀取語音的3種方法速度對比

 更新時間:2022年12月30日 11:21:11   作者:王延凱的博客  
python已經(jīng)支持WAV格式的書寫,下面這篇文章主要給大家介紹了關(guān)于python常見讀取語音的3種方法速度對比的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

python 讀取語音文件時,常用的無非以下三種方式,但是在我們數(shù)據(jù)量變的很大是,不同的讀取方式之間的性能差異就會被進(jìn)一步放大,于是本文著重對比了librosa、soundfile、wavfile三種方式的在重復(fù)讀取一萬次某個文件所耗時間的差異,為確保實(shí)驗(yàn)結(jié)果的可比性,每種方式讀取出的語音序列值均一致。具體數(shù)值,在下方程序結(jié)果中已經(jīng)標(biāo)示。

# -*- coding: utf-8 -*-
"""
# @Time : 2022/12/29 17:27
# @Author : WangYK
# @Site : 
# @File : check_speed.py.py
# @Software: PyCharm
# @Desc:    本文件實(shí)現(xiàn)對比三種常見的都區(qū)語音方式的速度區(qū)別

"""
import librosa
import soundfile as sf
from scipy.io import wavfile
from time import process_time
from tqdm import tqdm


# 讀取方式1
def librosa_loa(filename):
    wav_data,fs=librosa.load(filename,sr=16000)     #float64類型
    #wav_data:[-0.03305054 -0.03561401 -0.03814697]
    return wav_data,fs

#讀取方式2
def soundfile_load(filename):
    wav_data,fs=sf.read(filename)                   #float64類型
    #wav_data:[-0.03305054 -0.03561401 -0.03814697]
    return wav_data

#讀取方式3
def wavfile_load(filename):
    fs,wav_data=wavfile.read(filename)              #int16類型
    #轉(zhuǎn)為float64類型
    wav_data=wav_data/(32768)
    #wav_data:[-0.03305054 -0.03561401 -0.038114697]
    return wav_data

if __name__ == '__main__':
    filename = ['01.wav']
    filenames = filename * 10000   #重復(fù)1萬遍,用于對比各個方式耗時
    for filename in tqdm(filenames):
        wav_data=soundfile_load(filename)           # soundfile  讀取耗時   1.7031s
        wav_data=librosa_loa(filename)              # librosa    讀取耗時   416.23s
        wav_data=wavfile_load(filename)             # wavfile    讀取耗時   1.6875s

    print('當(dāng)前程序耗時:{:.9}s'.format(process_time()))

實(shí)驗(yàn)結(jié)果分析

  • 最快的方式為 wavfile 的方式,一萬次語音讀取僅耗時 1.6875s
  • 其次是 soundfile 的方式,一萬次語音讀取耗時 1.7031s ,與wavfile相差不大
  • 最慢的為 librosa 的方式,一萬次語音耗時 416s ,與其他兩種方式對比,巨慢。

但是還需要注意的一點(diǎn)就是 soundfile的方式讀取,時長會受到版本限制,例如numba等,此外如果在linux環(huán)境下進(jìn)行實(shí)驗(yàn),可能會出現(xiàn) OSError: sndfile library not found,如果你是在內(nèi)網(wǎng)或者連接網(wǎng)絡(luò)不方便的話,可以選擇wavfile方式讀取語音文件吧。

附:語音的播放

# 音頻的播放,本實(shí)驗(yàn)使用pyaudio(代碼相對matlab較麻煩,后期簡化)
import pyaudio
import wave

chunk = 1024
wf = wave.open(r"C:\Users\zyf\Desktop\Jupyter\1.wav", 'rb')
p = pyaudio.PyAudio()

# 打開聲音輸出流
stream = p.open(format = p.get_format_from_width(wf.getsampwidth()),
? ? ? ? ? ? ? ? channels = wf.getnchannels(),
? ? ? ? ? ? ? ? rate = wf.getframerate(),
? ? ? ? ? ? ? ? output = True)

# 寫聲音輸出流到聲卡進(jìn)行播放
while True:
? ? data = wf.readframes(chunk)
? ? if data == "":
? ? ? ? break
? ? stream.write(data)

stream.stop_stream()
stream.close()
p.terminate() ? # 關(guān)閉PyAudio

總結(jié)

到此這篇關(guān)于python常見讀取語音的3種方法速度對比的文章就介紹到這了,更多相關(guān)python讀取語音內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬取w3shcool的JQuery課程并且保存到本地

    python爬取w3shcool的JQuery課程并且保存到本地

    本文主要介紹python爬取w3shcool的JQuery的課程并且保存到本地的方法解析。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Python中關(guān)于Sequence切片的下標(biāo)問題詳解

    Python中關(guān)于Sequence切片的下標(biāo)問題詳解

    這篇文章主要給大家介紹了Python中關(guān)于Sequence切片下標(biāo)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫的方法詳解

    Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫的方法詳解

    這篇文章主要介紹了Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫的方法,較為詳細(xì)的分析了pymssql模塊的下載、安裝及連接、操作SQL Server數(shù)據(jù)庫的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • Python中addict庫使用Dict的類

    Python中addict庫使用Dict的類

    本文主要介紹了Python中addict庫的Dict類,它允許通過屬性訪問字典的鍵值對,使得訪問深層嵌套的字典更加方便,下面就來具體介紹一下,感興趣的可以了解一下
    2024-12-12
  • python實(shí)現(xiàn)批量監(jiān)聽頁面并發(fā)送郵件

    python實(shí)現(xiàn)批量監(jiān)聽頁面并發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python如何實(shí)現(xiàn)自動化批量監(jiān)聽頁面并發(fā)送郵件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Python+eval函數(shù)實(shí)現(xiàn)動態(tài)地計算數(shù)學(xué)表達(dá)式詳解

    Python+eval函數(shù)實(shí)現(xiàn)動態(tài)地計算數(shù)學(xué)表達(dá)式詳解

    Python的 eval() 允許從基于字符串或基于編譯代碼的輸入中計算任意Python表達(dá)式。當(dāng)從字符串或編譯后的代碼對象的任何輸入中動態(tài)計算Python表達(dá)式時,此函數(shù)非常方便。本文將利用eval實(shí)現(xiàn)動態(tài)地計算數(shù)學(xué)表達(dá)式,需要的可以參考一下
    2022-09-09
  • Python?yield?關(guān)鍵詞,

    Python?yield?關(guān)鍵詞,

    這篇文章主要介紹了Python?yield?關(guān)鍵詞,要理解yield的作用,你必須理解生成器是什么。在理解生成器之前,必須先理解迭代器。下面文章我們就先從
    迭代器開始展開yield關(guān)鍵詞的相關(guān)自資料 ,需要的朋友可以參考一下
    2021-12-12
  • Python中關(guān)于logging模塊的學(xué)習(xí)筆記

    Python中關(guān)于logging模塊的學(xué)習(xí)筆記

    在本篇文章里小編給大家整理的是一篇關(guān)于Python中l(wèi)ogging模塊相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們可以參考下。
    2020-06-06
  • 使用Python實(shí)現(xiàn)圖片批量重命名工具

    使用Python實(shí)現(xiàn)圖片批量重命名工具

    這篇文章主要為大家介紹了一個基于Python開發(fā)的圖形界面工具,用于批量重命名文件夾中的圖片文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下
    2025-04-04
  • python中如何使用正則表達(dá)式提取數(shù)據(jù)

    python中如何使用正則表達(dá)式提取數(shù)據(jù)

    這篇文章主要介紹了python中如何使用正則表達(dá)式提取數(shù)據(jù)問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

揭西县| 武冈市| 克山县| 霍山县| 濉溪县| 大同县| 灌云县| 垫江县| 左权县| 浠水县| 贵南县| 延长县| 江川县| 宝鸡市| 江西省| 汉源县| 晋宁县| 宁蒗| 长子县| 板桥市| 定襄县| 遵义市| 布尔津县| 墨竹工卡县| 九江市| 绥德县| 广西| 遂川县| 岳阳县| 晋宁县| 高雄县| 望谟县| 新竹市| 邻水| 女性| 华亭县| 金门县| 彝良县| 双桥区| 黄龙县| 永康市|