国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)說聲音:聲音的數(shù)值表示、操作與交互

2021-06-24 19:38:27于方軍賈剛
中國信息技術教育 2021年11期
關鍵詞:模擬信號數(shù)字信號二進制

于方軍 賈剛

聲音文件可以簡單看是一組頻率、響度、音色構成的數(shù)據(jù),這些數(shù)據(jù)遵從一定的規(guī)律按照時間維度組織起來,就構成了音樂和語言,由于增加了時間維度,所以它不像圖像那樣用一張紙就能保存下來。在物理學中,關于聲音的描述是它由物體振動產(chǎn)生的,振動的本質是位移關于時間的函數(shù)。在現(xiàn)實生活中,聽到的聲音信號都是隨時間連續(xù)變化的,這種信號叫模擬信號,而計算機存儲和使用的都是數(shù)字信號,所以需要把模擬信號轉化成數(shù)字信號后才能在計算機中使用。

本文將以聲音數(shù)據(jù)為核心,探尋如何對聲音進行數(shù)字表示與處理,并通過開源硬件實驗讓學生體驗音樂的構成。

● 聲音編碼:模擬聲音的數(shù)字化過程

模擬聲音轉化為數(shù)字信號分為采樣、量化、編碼三個過程,如圖1所示。在計算機上錄音就是把模擬聲音信號轉換成數(shù)字信號,而播放時則是把數(shù)字信號還原成模擬信號輸出,這兩個過程一般通過計算機上配置的聲卡來實現(xiàn)。采樣過程是按照一定的時間間隔在連續(xù)的波上進行間隔取值,如圖1取了10個樣。1秒鐘采樣次數(shù)稱為采樣頻率,常用采樣頻率有8kHz、11.025kHz、32kHz、44.1kHz、48kHz等,8kHz就是1秒鐘采樣8000次,采樣頻率越高,聲音的還原就越真實越自然,但數(shù)據(jù)量就會越大。量化過程就是給縱坐標定一個刻度,記錄每個采樣的縱坐標值。編碼過程是將每個量化后的樣本值轉換成二進制編碼。而整個數(shù)字化過程就是將所有樣本二進制編碼連起來存儲在計算機上,這樣就把模擬信號轉換成了數(shù)字信號。

● 聲音讀?。河贸绦蜃x取一段音頻文件

標準的Python包含Wave庫,且支持wav格式的音頻文件的讀寫,wav文件由頭部信息和音頻采樣數(shù)據(jù)構成,前44個字節(jié)為頭部信息,包括聲道數(shù)、量化位數(shù)、采樣頻率、采樣點數(shù)等信息,后部為音頻采樣數(shù)據(jù)。用Python讀取Scratch圖形化編程中的小貓叫文件Meow.wav的相關參數(shù),如圖2所示。

f.getparams()可以獲取音頻的屬性參數(shù),其中比較關鍵的是聲道數(shù)(nchannels)、量化位數(shù)(sampwidth)、采樣頻率(framerate)、采樣點數(shù)(nframes)等,本音頻文件是1個聲道,量化位數(shù)是2B(也就是用2個字節(jié)16位二進制數(shù)據(jù)表示聲音縱坐標),采樣頻率為11025,一共采樣6512個數(shù)據(jù)點。利用這些數(shù)據(jù)我們可以計算聲音文件的一些信息,如用采樣數(shù)據(jù)點數(shù)除以采樣頻率:6512/11025=0.5906,得到聲音播放時長約為0.59秒。接著,用每個采樣點的時間作為橫坐標,每個時間點的聲音數(shù)據(jù)作為縱坐標,就能做出聲音波形,如圖3所示。

● 聲音修改:觀察聲音變化

可以用代碼改變數(shù)組中某一段采樣點數(shù)值,如1000~1500采樣點值都改為0(如圖4),重新繪制波形文件后會發(fā)現(xiàn)波形圖像中間少了一段,重新生成wav文件播放,會聽到中間有一段是沒有聲音的。

● 聲音重寫:用計算機數(shù)據(jù)方式生成音樂

下面,用wave庫寫一段音樂(歌曲《兩只老虎》的第一句),如下頁圖5所示。

代碼中先定義一個寫音符函數(shù),函數(shù)包含每個音符時長、音調、采樣頻率、文件、音量、量化位數(shù)6個參數(shù)。在寫入lzlh.wav文件時,要把聲道數(shù)、采樣頻率、量化位數(shù)規(guī)定好,寫入文件頭中,完成后可以用播放器打開生成文件試聽效果。

● 聲音交互:用掌控板做一個趣味鋼琴

用掌控板模擬鋼琴演奏,是通過觸摸p、y、t、h、o、n按鍵,讓蜂鳴器發(fā)出Do、Re、Mi、Fa、So、La的聲音。如果要做得更有趣味性,可以在掌控板的OLED屏上顯示模擬鋼琴圖片,并在鋼琴鍵上顯示提示音符。為了確定“鋼琴”是否按下,按的是哪一個音符,可以在觸摸按鍵時在對應位置顯示模擬手指。

為了簡化代碼,我們只顯示按鍵演奏對應音符部分代碼,代碼用mPython完成,如圖6所示,通過對比圖形化代碼塊和純代碼編程,學生更容易理解程序的邏輯構成,并發(fā)現(xiàn)每一個音符對應一組數(shù)據(jù),如C4中音Do對應(262,500),代表該音符頻率是262hz時長是500毫秒,完成后就可以用它彈奏簡單樂曲。

至此,從讀取、修改、重寫三個維度展現(xiàn)了數(shù)據(jù)的編碼、改寫、仿真的過程,最后通過一個創(chuàng)客作品完成了聲音交互的作品的設計,如圖7所示。通過本案例實驗,學生會發(fā)現(xiàn)聲音文件的處理與圖像文件的處理有著相同的方式,都需要把模擬信號轉成計算機識別的數(shù)字信號,轉換成相關的二進制編碼。

數(shù)字技術的發(fā)展給我們提供了一種更好地處理信息的方式。把各種信息轉換為二進制代碼的形式會更方便保存和遠距離傳播;反之,進行模擬輸出時還要經(jīng)過一個數(shù)模轉換的過程。理解了這兩個過程,學生就會更好地理解基于計算機技術的人工智能是如何感知周圍環(huán)境信息并做出反應的。這也是進一步理解語音識別相關技術的基礎。

猜你喜歡
模擬信號數(shù)字信號二進制
船舶導航雷達數(shù)字信號處理機的FPGA電路設計與優(yōu)化
用二進制解一道高中數(shù)學聯(lián)賽數(shù)論題
有趣的進度
二進制在競賽題中的應用
一種基于ADG426多路模擬開關的模擬信號輸入接口設計
電子制作(2019年7期)2019-04-25 13:18:00
一種模擬信號選通運算電路的設計
電子測試(2018年14期)2018-09-26 06:04:08
兩種數(shù)字信號浪涌保護器(SPD)測試分析
電子測試(2018年13期)2018-09-26 03:29:32
數(shù)字電子技術中的數(shù)字信號和數(shù)字電路
電子制作(2018年16期)2018-09-26 03:27:16
基于小波神經(jīng)網(wǎng)絡的數(shù)字信號調制方式識別
模擬信號的三種調制方法比較研究
電子制作(2017年24期)2017-02-02 07:14:19
祁东县| 惠东县| 盈江县| 泰安市| 峨山| 永和县| 武平县| 宁陵县| 土默特右旗| 南木林县| 恩施市| 陵水| 绥化市| 康保县| 寿宁县| 庐江县| 普陀区| 兴城市| 绥滨县| 堆龙德庆县| 都安| 建水县| 临沭县| 扎兰屯市| 洛川县| 宣恩县| 武穴市| 清苑县| 昂仁县| 荔浦县| 安达市| 周口市| 赤峰市| 黄山市| 图木舒克市| 安乡县| 临潭县| 宿州市| 宁国市| 本溪市| 平定县|