五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

pyaudio高級(jí)玩法4:使用不同的聲音設(shè)備

2020-04-21 23:50 作者:怯默吾聲  | 我要投稿

????????在這個(gè)系列的第一篇中,介紹了pyaudio的非阻塞模式,不過這個(gè)詞還是有點(diǎn)生僻的,所以很多人沒有明白代碼的意義,為了讓使用者少走彎路,所以在開始今天的正題之前,在這里補(bǔ)充說明一下。

????????

pyaudio錄音時(shí),經(jīng)常會(huì)有一邊錄音,一邊做其他事情的需求。

比如一邊錄音一邊保存,一邊錄音一邊處理?

你大概會(huì)想一些其他解決方案,比如使用多線程完成這樣的任務(wù)。

不過pyaudio是原生支持非阻塞模式記錄聲音的。


什么是非阻塞模式?

假設(shè)你使用一句編程代碼來實(shí)現(xiàn)記錄一秒鐘聲音這樣的工作,

這種時(shí)候程序的運(yùn)行一般有兩種情況:

第一種,在這個(gè)代碼執(zhí)行的1秒鐘時(shí)間內(nèi),程序就卡在這里等待其執(zhí)行完畢后,再處理后面的內(nèi)容。顯然,對(duì)于一臺(tái)計(jì)算機(jī)來說,這樣的處理模式效率不高。如果需要循環(huán)記錄聲音,那么在處理其他內(nèi)容的時(shí)候,也會(huì)造成聲音記錄這項(xiàng)工作被撕裂,導(dǎo)致記錄的聲音斷斷續(xù)續(xù)。

第二種情況,程序一旦啟動(dòng)錄音,剩下的工作都放在后臺(tái)運(yùn)行,程序則不會(huì)等待其執(zhí)行完畢,而是直接去執(zhí)行后面的語句。當(dāng)然,為了方便對(duì)聲音的處理,我們可以隨時(shí)去查看已經(jīng)錄到的內(nèi)容,或者查詢是否已經(jīng)錄制完畢。這樣充分解決了


網(wǎng)上一般給出的pyaudio代碼都是第一種情況,而實(shí)際上pyaudio可以直接支持第二種處理方式。而且設(shè)計(jì)非常完善,你所需要的只是添加一個(gè)回調(diào)函數(shù)。

具體怎么做?歡迎查看本系列的第一篇文章。

????????現(xiàn)在回過頭來,pyaudio的功能可不僅僅局限于使用阻塞和非阻塞的方式去記錄聲音,作為python管理聲音輸入輸出的主力庫,其也可以管理你計(jì)算機(jī)上的聲音輸入輸出設(shè)備。

????????以windows系統(tǒng)為例,我看先看一下在windows系統(tǒng)上如何管理這些設(shè)備。

windows的音頻設(shè)備管理界面

這里可以管理windows的默認(rèn)音頻設(shè)備,它會(huì)影響到pyaudio的使用,當(dāng)然pyaudio也可以直接調(diào)用非默認(rèn)的音頻設(shè)備。

我們可以查看當(dāng)前計(jì)算機(jī)的音頻設(shè)備和編號(hào)。先看代碼:

import?pyaudio

p?=?pyaudio.PyAudio()

print(p)

for?i?in?range(p.get_device_count()):

????print(p.get_device_info_by_index(i))

b站對(duì)代碼的支持不太好,所以如果你復(fù)制粘貼這段代碼,需要將其中的空格替換會(huì)正常的空格。代碼本身還能更簡(jiǎn)單么?我認(rèn)為不能啦。

然后,看看我們能獲得什么。

返回的設(shè)備列表

返回的列表列出了本機(jī)上的所有音頻設(shè)備,包括實(shí)際上可用的和不可用的,還有一些實(shí)際上重復(fù)的。除了編號(hào),名稱,還包括了輸入和輸出的聲道數(shù)等信息。

一些設(shè)備從名稱上就可以分辨其到底是輸入設(shè)備,還是輸出設(shè)備,不過更保險(xiǎn)的方式是查看后面的maxinputchannel(最大輸入聲道數(shù))和maxoutputchannel(最大輸出聲道數(shù))。

列表可以看到,還是挺復(fù)雜的,如果不是有特殊需求(比如同時(shí)控制若然個(gè)不同的聲音設(shè)備),我建議你還是直接忽略這些,不指定設(shè)備參數(shù)時(shí),pyaudio會(huì)貼心的為你調(diào)用系統(tǒng)默認(rèn)的聲音設(shè)備。

知道了這些編號(hào),我們只需要在pyaudio中設(shè)置對(duì)應(yīng)的參數(shù)就可以啦??梢詤⒖忌弦黄a中的參數(shù)。

這里我直接把用到的部分搬過來。

參數(shù)的功能和設(shè)置

是不是說的很詳細(xì)了呢?

雖然忘了提,上篇內(nèi)容其實(shí)也用到了pyaudio的輸出功能。

綜合這4篇文章,現(xiàn)在你應(yīng)該可以使用pyaudio徹底玩轉(zhuǎn)你計(jì)算機(jī)上的音頻功能啦。剩下的應(yīng)該只有用來處理聲音的各種算法了。

pyaudio高級(jí)玩法4:使用不同的聲音設(shè)備的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
宁武县| 四会市| 望都县| 靖宇县| 虹口区| 同江市| 波密县| 浙江省| 西乌珠穆沁旗| 西乡县| 天等县| 永定县| 西青区| 合水县| 安国市| 北海市| 朝阳市| 元阳县| 怀远县| 峨山| 江陵县| 新绛县| 扶绥县| 六枝特区| 泉州市| 都江堰市| 二连浩特市| 若尔盖县| 麻江县| 巨鹿县| 琼中| 乌兰浩特市| 霍林郭勒市| 恩平市| 新龙县| 桐乡市| 东乌珠穆沁旗| 盱眙县| 张家川| 聂荣县| 遂川县|