調(diào)整PCM語音數(shù)據(jù)的音量

通過編程實(shí)現(xiàn)調(diào)整PCM的音量,具體做法是乘上一個(gè)固定的數(shù),但是要考慮數(shù)據(jù)的溢出問題,代碼如下:

//調(diào)節(jié)PCM數(shù)據(jù)音量
//comment     : 對(duì)PCM數(shù)據(jù)的音量進(jìn)行放大  
//parameter   :   
//            pData   PCM數(shù)據(jù)  
//            nLen    PCM數(shù)據(jù)的長(zhǎng)度  
//            nBitsPerSample  每個(gè)Sample的位數(shù),一般為8的整數(shù)  
//            multiple    放大倍數(shù)  
//result      : S_OK 成功  
int AmplifyPCMData(BYTE* pData, int nLen, int nBitsPerSample, float multiple)   
{   
    int nCur = 0;   
    if (16 == nBitsPerSample)   
    {   
        while (nCur < nLen)   
        {   
            short* volum = (short*)(pData + nCur);   
            *volum = (*volum) * multiple;   
            if (dwData < -0x8000)
            {
                dwData = -0x8000;
            }
            if (*volum > SHRT_MAX)//爆音的處理   
            {   
                *volum = SHRT_MAX;   
            }   
            *(short*)(pData + nCur) = *volum  ;   
            nCur += 2;   
        }   
           
    }   
    else if (8 == nBitsPerSample)   
    {   
        while (nCur < nLen)   
        {   
            BYTE* volum = pData + nCur;   
            *volum = (*volum) * multiple;   
            if (*volum > 255)//爆音的處理   
            {   
                *volum = 255;   
            }   
            *pData  = *volum  ;   
            nCur ++;   
        }   
           
    }   
    return S_OK;   
       
}  

調(diào)整完后效果可以使用Audacity對(duì)比:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,905評(píng)論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評(píng)論 18 399
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,113評(píng)論 1 92
  • 如果容顏老了, 那就藏到詩句里, 等入夜,溶入茶盞隨你顧盼私語。 如果愛意淡了, 那就躲在烈酒里, 等入喉,點(diǎn)燃世...
    何來雍雅閱讀 396評(píng)論 2 7
  • 門店銷售會(huì)碰到很多類型的客戶,怎么接待這些客戶才能為下面的銷售做好鋪墊呢?下面是頂級(jí)銷售高手總結(jié)的開場(chǎng)白的方法。 ...
    原中勁法120閱讀 1,032評(píng)論 0 0

友情鏈接更多精彩內(nèi)容