1. 程式人生 > >如何粗略的計算原始音訊PCM訊號的音量

如何粗略的計算原始音訊PCM訊號的音量

粗略的計算原始音訊PCM訊號的音量

本文只是粗略的計算音訊單通道的音量,取樣率是48000,幀的大小是1024,位寬是16。

通過查詢資料,並結合所學過的訊號處理知識,計算PCM訊號的音量大小,就是求取樣點幅值的面積(即能量),計算公式為:20*log10(x/y)

此處出思路是:以一幀為單位,求一幀內,單個取樣點的平均幅值,然後,對這個平均幅值進行能量計算,大概估算出當前的音量大小。

程式碼如下:

        //取當前的PCM平均幅值
        pcm_status = a_pcm_status;

        if(pcm_status!=0)
        {
        //計算音量大小,並進行百分比量化
pcm_level = ((int)(20*log10((double)pcm_status/32767.0))+34)*100/34; } else{ pcm_level = 0; }

相關推薦

如何粗略計算原始音訊PCM訊號音量

粗略的計算原始音訊PCM訊號的音量 本文只是粗略的計算音訊單通道的音量,取樣率是48000,幀的大小是1024,位寬是16。 通過查詢資料,並結合所學過的訊號處理知識,計算PCM訊號的音量大小,就是求取樣點幅值的面積(即能量),計算公式為:20*log1

《android多媒體api》之AudioRecord原始音訊pcm錄製api

《android多媒體api》系列是整合梳理android開發中經常用到的媒體相關api;多媒體開發主要內容有音訊、視訊錄製播放、攝像頭操作、錄製操作、流媒體、直播、推流、拉流等方面;最近幾年移動直播和視訊應用發展猶如雨後春筍一般直插雲霄,呃。。好吧這段比喻可以

pcm原始音訊採集率轉換

pcm介紹 pcm也被稱為 脈碼編碼調製,是音訊中沒經過壓縮的原始資料。 在聲音採集中經過抽樣,量化,最後編碼。 取樣:對聲音進行一定頻率的採集,頻率越高,間隔時間越小,聲音更接近真實。常用的取樣率有8khz,16khz,22.05KHz、44.1KHz、48KHz等。 量化就是對每個採

mac:使用VLC播放純音訊PCM檔案(命令列)

有時候,我們需要播放一些純音訊檔案,判斷PCM資料是否可用。舉個例子,我們使用命令列播放/Users/lz目錄下的audio.pcm檔案,命令如下: /Applications/VLC.app/Contents/MacOS/VLC --demux=rawaud --rawaud-channe

C++ 採集音訊PCM流功能

#include "stdafx.h" #include <stdio.h> #include <Windows.h> #pragma comment(lib, "winmm.lib") HWAVEIN hWaveIn; //輸入裝置

android音訊pcm流8位和16位的相互轉換

                //將16位pcm資料轉換成8位有符號的pcm        

使用GoldWave增加音訊檔案的音量

有的時候下載的音樂聲音很小,即便將聲量提高到最大,也還是很小, 那我們螢愛怎麼辦呢,這裡推薦GoldWave(http://www.goldwave.cn/)軟體,這是一個專業的數字音樂編輯器。介面大氣操作簡單,今天就來教大家用GoldWave增加音訊檔案音量。 首先我們在中文網上下載Gol

音訊PCM資料總結

舉一個例子: 取樣率:8000HZ 取樣精度:16bit 聲道數:2個 一個取樣點的資料大小:取樣精度/8*聲道數(即16/8*2=4byte) 一個取樣點的資料分佈: 一個取樣點的資料

關於音訊PCM資料2位元組(16位)byte與64位double之間的轉換

1 致謝 2 問題描述 今天遇到一個問題 讀取了WAV檔案的PCM資料 PCM資料是以byte[]型別儲存的 而在一般的FFT變換庫函式中一般使用的是浮點型資料 (Youki此處使用的是dou

房子在買入兩年後出手要漲幅多少才能保證不虧(粗略計算)

7日年化收益率12% 屬於高利貸麼 首先,將年化轉換為日化的1w的日收益 0.12*10000/365 = 3.19 我們看一下餘

C++ 調節PCM音訊音量大小

    在用解碼器解碼音訊資料得到PCM音訊資料塊之後,可以在將資料送給音效卡播放之前調節其音量大小,PCM格式本身就是以一定的資料位記錄音量的高低(如16位,便是以2個byte的長度記錄取樣時間點音量的大小),因此音訊音量大小的調節原理就是調節這個值而已,非常的簡單。需要

PCM音訊資料音量大小調節

轉載:http://blog.csdn.net/timsley/article/details/50683084 PCM音訊資料增大或減小的原理主要是,將取樣的資料乘上一個數字或者是除以一個數字,但要注意溢位處理。具體實現如下 C語言實現 #define OLD_FI

Android 音頻采集——MediaRecord(編碼後錄影文件) 、AudioRecord(PCM原始數據)

listen ext 根據 任務 nbsp too 影響 按鈕 red http://blog.csdn.net/java_android_c/article/details/52619737 Android 音頻簡介 常見的音頻編解碼的類型:AAC OPUS MP3

PCM音量控制(高級篇)

-o data- rap -m val 根據 bar img some http://blog.jianchihu.net/pcm-volume-control.html 去年寫過一篇文章,有關PCM的音量控制:http://blog.jianchihu.net/pcm-v

PCM、G.729等常用VoIP編碼的實際帶寬計算

cit ipv6 cci 所有 需要 結束 blog 什麽 編碼算法 我覺得通信背景的同學,一提到PCM編碼,腦海裏都能跳出來一個數值64k。 一、64KB還是64Kb? 64Kb! 二、哪裏來的64Kb? CCITT規定抽樣率為每秒8000KHz,每抽樣值編8位碼,

java音訊檔案pcm轉wav

import java.io.FileInputStream; import java.io.FileOutputStream; /**  * PCM檔案轉換成Wav格式音訊  * @author chuanye.wan  *  */ public cla

linux音訊子系統 - ASoC-PCM之codec和platform

從前面的文章已經知道platform和codec分別代表不同的元件,對於不同廠家各個晶片,只要註冊相應的驅動到codec和platform中,然後具體使用哪個驅動,只要在machine中匹配就好,那麼關於platform和codec的註冊本文簡單說明下 platform

linux音訊子系統 - ASoC-PCM之machine

對於ASoC框架來說,machine就相當於card,soc-card的註冊就在machine的相關檔案中操作,machine相當於整個音效卡,而platform和codec是音效卡的附屬部件 1. struct snd_soc_card soc音效卡用這個結

linux音訊子系統 - pcm裝置

1.pcm裝置 脈衝編碼調製(Pulse Code Modulation,PCM),就是把一個時間連續,取值連續的模擬訊號變換成時間離散,取值離散的數字訊號後在通道中傳輸,這是基本原理。 根據此原理,在音訊領域的數字音訊就用pcm裝置來代表,pcm也是一種音訊格式,可以自定義通道

音訊硬體介面(PCM、I2S、AC'97)

                                          &