青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

夜貓子

夜貓子
隨筆 - 5, 文章 - 1, 評論 - 1, 引用 - 0
數據加載中……

speex開源庫分析(前置處理)

1.簡介

語音在采集和傳輸過程中,由于語音源的差異、信道的衰減、噪聲的干擾以及遠近效應,導致信號幅度相差很大。所有在語音處理之前我們需要對語音數據進行前置處理,包括預處理(AGCVAD、回音消除)、重采樣和噪聲抑制。

所有的代碼都是基于speex開源庫,具體內容可以參考http://speex.org/

本開發手冊暫時只提供AGC的接口和測試代碼,其他陸續添加進來。

2.接口說明

2.1  介紹

預處理模塊包括自動增益控制、靜音檢測和回音消除。以下是接口函數,具體參考speex\ speex_preprocess.h。

 

函數名稱

功能簡介

speex_preprocess_state_init

創建預處理器

speex_preprocess_state_destroy

銷毀預處理器

speex_preprocess_run

處理一幀數據

speex_preprocess

處理一幀數據(廢棄的)

speex_preprocess_estimate_update

更新預處理器

speex_preprocess_ctl

設置和讀取預處理器的參數

 

2.1.1  speex_preprocess_state_init

函數原形

SpeexPreprocessState *speex_preprocess_state_init(int frame_size, int sampling_rate);

功能

創建預處理器

參數

Frmae_size   [in]每幀的大?。ńㄗh幀長為20ms

Sample_rate  [in]采樣率(支持8k、16k44k

返回值

成功返回預處理器指針,失敗返回NULL

說明

加入是16k的語音數據,幀長20ms等于320個采樣

 

2.1.2  speex_preprocess_state_destroy

函數原形

void speex_preprocess_state_destroy(SpeexPreprocessState *st);

功能

銷毀預處理器

參數

St           [in]處理器指針

返回值

Void

說明

 

 

2.1.3  speex_preprocess_run

函數原形

int speex_preprocess_run(SpeexPreprocessState *st, spx_int16_t *x);

功能

處理一幀語音數據

參數

St           [in]處理器指針

X            [in|out]數據緩存,處理后的數據也存入該緩存中

返回值

如果VAD打開,返回值為1表示有語音,為0表示靜音或者噪音

說明

 

 

2.1.4  speex_preprocess

函數原形

int speex_preprocess(SpeexPreprocessState *st, spx_int16_t *x, spx_int32_t *echo);

功能

處理一幀語音數據(廢棄的函數,簡介調用speex_preprocess_run

參數

St           [in]處理器指針

X            [in|out]數據緩存,處理后的數據也存入該緩存中     

返回值

 

說明

 

 

2.1.5  speex_preprocess_estimate_update

函數原形

void speex_preprocess_estimate_update(SpeexPreprocessState *st, spx_int16_t *x);

功能

更新預處理器,不會計算輸出語音

參數

St           [in]處理器指針

X            [in]數據緩存

返回值

Void

說明

 

 

2.1.6  speex_preprocess_ctl

函數原形

int speex_preprocess_ctl(SpeexPreprocessState *st, int request, void *ptr);

功能

設置預處理器的參數

參數

St           [in]處理器指針

Request      [in]參數的類型(由宏來代表不同的參數)

Ptr          [in|out]參數的值(設置參數時為in,獲得參數參數時為out,這個由宏決定)

返回值

成功返回0,失敗返回-1(表明未知的請求參數)

說明

以下數標識參數類型的宏

/** Set preprocessor denoiser state */

#define SPEEX_PREPROCESS_SET_DENOISE 0

/** Get preprocessor denoiser state */

#define SPEEX_PREPROCESS_GET_DENOISE 1

 

/** Set preprocessor Automatic Gain Control state */

#define SPEEX_PREPROCESS_SET_AGC 2

/** Get preprocessor Automatic Gain Control state */

#define SPEEX_PREPROCESS_GET_AGC 3

 

/** Set preprocessor Voice Activity Detection state */

#define SPEEX_PREPROCESS_SET_VAD 4

/** Get preprocessor Voice Activity Detection state */

#define SPEEX_PREPROCESS_GET_VAD 5

 

/** Set preprocessor Automatic Gain Control level (float) */

#define SPEEX_PREPROCESS_SET_AGC_LEVEL 6

/** Get preprocessor Automatic Gain Control level (float) */

#define SPEEX_PREPROCESS_GET_AGC_LEVEL 7

 

/** Set preprocessor dereverb state */

#define SPEEX_PREPROCESS_SET_DEREVERB 8

/** Get preprocessor dereverb state */

#define SPEEX_PREPROCESS_GET_DEREVERB 9

 

/** Set preprocessor dereverb level */

#define SPEEX_PREPROCESS_SET_DEREVERB_LEVEL 10

/** Get preprocessor dereverb level */

#define SPEEX_PREPROCESS_GET_DEREVERB_LEVEL 11

 

/** Set preprocessor dereverb decay */

#define SPEEX_PREPROCESS_SET_DEREVERB_DECAY 12

/** Get preprocessor dereverb decay */

#define SPEEX_PREPROCESS_GET_DEREVERB_DECAY 13

 

/** Set probability required for the VAD to go from silence to voice */

#define SPEEX_PREPROCESS_SET_PROB_START 14

/** Get probability required for the VAD to go from silence to voice */

#define SPEEX_PREPROCESS_GET_PROB_START 15

 

/** Set probability required for the VAD to stay in the voice state (integer percent) */

#define SPEEX_PREPROCESS_SET_PROB_CONTINUE 16

/** Get probability required for the VAD to stay in the voice state (integer percent) */

#define SPEEX_PREPROCESS_GET_PROB_CONTINUE 17

 

/** Set maximum attenuation of the noise in dB (negative number) */

#define SPEEX_PREPROCESS_SET_NOISE_SUPPRESS 18

/** Get maximum attenuation of the noise in dB (negative number) */

#define SPEEX_PREPROCESS_GET_NOISE_SUPPRESS 19

 

/** Set maximum attenuation of the residual echo in dB (negative number) */

#define SPEEX_PREPROCESS_SET_ECHO_SUPPRESS 20

/** Get maximum attenuation of the residual echo in dB (negative number) */

#define SPEEX_PREPROCESS_GET_ECHO_SUPPRESS 21

 

/** Set maximum attenuation of the residual echo in dB when near end is active (negative number) */

#define SPEEX_PREPROCESS_SET_ECHO_SUPPRESS_ACTIVE 22

/** Get maximum attenuation of the residual echo in dB when near end is active (negative number) */

#define SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE 23

 

/** Set the corresponding echo canceller state so that residual echo suppression can be performed (NULL for no residual echo suppression) */

#define SPEEX_PREPROCESS_SET_ECHO_STATE 24

/** Get the corresponding echo canceller state */

#define SPEEX_PREPROCESS_GET_ECHO_STATE 25

 

/** Set maximal gain increase in dB/second (int32) */

#define SPEEX_PREPROCESS_SET_AGC_INCREMENT 26

 

/** Get maximal gain increase in dB/second (int32) */

#define SPEEX_PREPROCESS_GET_AGC_INCREMENT 27

 

/** Set maximal gain decrease in dB/second (int32) */

#define SPEEX_PREPROCESS_SET_AGC_DECREMENT 28

 

/** Get maximal gain decrease in dB/second (int32) */

#define SPEEX_PREPROCESS_GET_AGC_DECREMENT 29

 

/** Set maximal gain in dB (int32) */

#define SPEEX_PREPROCESS_SET_AGC_MAX_GAIN 30

 

/** Get maximal gain in dB (int32) */

#define SPEEX_PREPROCESS_GET_AGC_MAX_GAIN 31

 

/*  Can't set loudness */

/** Get loudness */

#define SPEEX_PREPROCESS_GET_AGC_LOUDNESS 33

 

/*  Can't set gain */

/** Get current gain (int32 percent) */

#define SPEEX_PREPROCESS_GET_AGC_GAIN 35

 

/*  Can't set spectrum size */

/** Get spectrum size for power spectrum (int32) */

#define SPEEX_PREPROCESS_GET_PSD_SIZE 37

 

/*  Can't set power spectrum */

/** Get power spectrum (int32[] of squared values) */

#define SPEEX_PREPROCESS_GET_PSD 39

 

/*  Can't set noise size */

/** Get spectrum size for noise estimate (int32)  */

#define SPEEX_PREPROCESS_GET_NOISE_PSD_SIZE 41

 

/*  Can't set noise estimate */

/** Get noise estimate (int32[] of squared values) */

#define SPEEX_PREPROCESS_GET_NOISE_PSD 43

 

/* Can't set speech probability */

/** Get speech probability in last frame (int32).  */

#define SPEEX_PREPROCESS_GET_PROB 45

 

/** Set preprocessor Automatic Gain Control level (int32) */

#define SPEEX_PREPROCESS_SET_AGC_TARGET 46

/** Get preprocessor Automatic Gain Control level (int32) */

#define SPEEX_PREPROCESS_GET_AGC_TARGET 47

 

3.實例代碼

3.1  AGC

#define NN 320

/*

    語音數據為單通道、16bit、16k

*/

int _tmain(int argc, _TCHAR* argv[])

{

 

     short in[NN];

     int i;

     SpeexPreprocessState *st;

     int count=0;

     float f;

 

     st = speex_preprocess_state_init(NN, 16000);

    

     i=1;

     speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC, &i);

     f=16000;

     speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC_LEVEL, &f);

 

 

     while (1)

     {

         int vad;

         fread(in, sizeof(short), NN, stdin);

         if (feof(stdin))

              break;

         vad = speex_preprocess_run(st, in);

         //fprintf (stderr, "%d\n", vad);

         fwrite(in, sizeof(short), NN, stdout);

         count++;

     }

     speex_preprocess_state_destroy(st);

 

     return 0;

}

 

 


 

posted on 2012-04-24 18:41 夜貓子 閱讀(8055) 評論(1)  編輯 收藏 引用

評論

# re: speex開源庫分析(前置處理)  回復  更多評論   

speex-1.2beta3-win32版本的libspeex.lib庫中沒有吧preprocess相關的一些文件放進去,所以
speex_preprocess_state_init
speex_preprocess_ctl
speex_preprocess_run
speex_preprocess_state_destroy就無法調用了。

但是dsp版本的libspeexdsp.lib中有卻有,是Win32的不支持嗎?還是什么原因?
2012-07-11 17:16 | kobewylb
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线看国产日韩| 99精品国产一区二区青青牛奶| 91久久精品日日躁夜夜躁欧美| 99re66热这里只有精品3直播| 久久精品在线免费观看| 亚洲一区二区在线| 日韩视频在线一区二区三区| 影音国产精品| 99国产精品国产精品久久 | 欧美激情影院| 欧美二区不卡| av成人福利| 亚洲免费网址| 看片网站欧美日韩| 欧美屁股在线| 国产亚洲精品自拍| 亚洲免费电影在线| 午夜老司机精品| 久久久噜噜噜久久狠狠50岁| 欧美精品激情| 国产麻豆日韩欧美久久| 激情亚洲网站| 亚洲尤物视频在线| 亚洲国产婷婷香蕉久久久久久| 欧美激情一区三区| 亚洲综合国产激情另类一区| 国产视频一区在线观看| 国产精品99久久久久久久vr| 久久免费视频网站| 国产精品普通话对白| 亚洲片国产一区一级在线观看| 午夜精品理论片| 亚洲精品一区二区三区在线观看| 亚洲欧美制服中文字幕| 国产精品久久久久9999吃药| 亚洲区中文字幕| 欧美大片免费久久精品三p | 亚洲欧美一区二区三区在线| 麻豆精品在线视频| ●精品国产综合乱码久久久久 | 国产精品丝袜xxxxxxx| 99热精品在线| 一卡二卡3卡四卡高清精品视频| 蜜桃av噜噜一区| 日韩西西人体444www| 亚洲片在线观看| 欧美国产一区二区| 在线视频欧美精品| 久久免费国产| 一区二区三区四区五区视频| 一区二区三区精品国产| 亚洲电影免费在线观看| 欧美激情va永久在线播放| 99国产精品视频免费观看| 一区二区免费看| 国产欧美精品日韩精品| 久久一二三四| 欧美午夜a级限制福利片| 欧美一区二区三区视频在线观看| 亚洲欧美日韩一区二区| 亚洲人成在线观看| 亚洲在线免费| 亚洲精品久久久久久下一站| 亚洲伦理精品| 激情综合网址| 性做久久久久久久久| 一区二区三区鲁丝不卡| 久久久久久9999| 久久精品视频在线| 国产精品theporn88| 亚洲黄色av一区| 亚洲欧洲一级| 欧美精品免费视频| 免费在线成人av| 香蕉久久久久久久av网站| 一区二区三区黄色| 欧美精品一区二区三区四区| 久久婷婷国产综合精品青草| 国产视频在线观看一区二区三区 | 国产欧美亚洲精品| 亚洲国产一区在线观看| 国产一区欧美| 久久精品在线视频| 亚洲高清不卡av| 久久精品91| 免费日韩一区二区| 亚洲国内自拍| 欧美精品国产精品| 中日韩美女免费视频网址在线观看 | 欧美巨乳在线| 亚洲国产婷婷香蕉久久久久久99 | 欧美三日本三级少妇三2023| 亚洲欧美另类在线观看| 久久xxxx| 一区免费观看| 亚洲无限av看| 亚洲免费av观看| 国产在线麻豆精品观看| 亚洲精品久久久久中文字幕欢迎你| 欧美国产亚洲精品久久久8v| 性欧美激情精品| 欧美一区二区视频在线观看2020 | 欧美日韩视频不卡| 亚洲精品欧美| 国产精品99久久久久久宅男| 国产精品午夜在线| 欧美理论电影在线播放| 先锋影音一区二区三区| 亚洲国产美女| 久久亚洲午夜电影| 国产一区二区剧情av在线| 美乳少妇欧美精品| 久久久久久成人| 欧美在线观看一区| 亚洲在线观看免费视频| 国产精品毛片大码女人| 欧美成人亚洲成人| 久久综合色影院| 久久全球大尺度高清视频| 欧美在线视频a| 久久国产乱子精品免费女| 午夜精品视频一区| 国产精品扒开腿爽爽爽视频| 日韩写真在线| 亚洲无限av看| 欧美一区视频| 久久伊伊香蕉| 亚洲日本中文| 亚洲视频在线看| 久久精品国产亚洲aⅴ| 免费不卡在线视频| 欧美成人国产| 国产精品免费看片| 一区二区在线不卡| 日韩亚洲国产精品| 久久精品国语| 日韩视频一区| 久久久av毛片精品| 欧美午夜精品久久久久久超碰| 国产主播精品在线| 亚洲小说区图片区| 欧美黄色免费| 久久精品人人| 国产精品爽爽爽| 亚洲一区精品视频| 91久久亚洲| 久久久免费av| 激情欧美丁香| 久久精品免视看| 欧美亚洲日本网站| 国产欧美一区二区三区另类精品 | 最近看过的日韩成人| 欧美午夜欧美| 亚洲欧美在线一区| 欧美色欧美亚洲高清在线视频| 亚洲激情视频| 欧美新色视频| 欧美一级专区免费大片| 一区二区三区日韩| 国产九区一区在线| 久久婷婷久久| 久久综合伊人77777蜜臀| 樱花yy私人影院亚洲| 美女日韩欧美| 欧美日韩精品在线| 欧美一区二区三区的| 亚洲欧美亚洲| 亚洲伦理中文字幕| 99国产精品久久久久老师| 国产精品日韩一区二区| 久久一本综合频道| 欧美视频免费在线观看| 久久偷窥视频| 欧美日韩国产电影| 久久久一二三| 国产精品久久久久久户外露出| 免费在线观看一区二区| 欧美日韩福利| 牛人盗摄一区二区三区视频| 欧美日韩精品一区| 亚洲电影网站| 国产精品免费网站在线观看| 亚洲第一精品夜夜躁人人爽| 欧美视频官网| 亚洲国产另类精品专区| 国产在线视频不卡二| 久久久久国产一区二区三区四区| 欧美老女人xx| 欧美黄色片免费观看| 黑人操亚洲美女惩罚| 亚洲免费在线视频| 亚洲欧美三级伦理| 国产精品视频99| 一二三区精品福利视频| 日韩视频在线播放| 欧美成人一区二区| 亚洲高清自拍| 亚洲色图在线视频| 国产精品手机在线| 欧美一级专区免费大片|