亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plc.h

?? asterisk 是一個很有知名度開源軟件
?? H
字號:
/*! \file * \brief SpanDSP - a series of DSP components for telephony * * plc.h * * \author Steve Underwood <steveu@coppice.org> * * Copyright (C) 2004 Steve Underwood * * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * This version may be optionally licenced under the GNU LGPL licence. * * A license has been granted to Digium (via disclaimer) for the use of * this code. */#if !defined(_PLC_H_)#define _PLC_H_/* solaris used to #include <sys/int_types.h> *//*! \page plc_page Packet loss concealment\section plc_page_sec_1 What does it do?The packet loss concealment module provides a suitable synthetic fill-in signal,to minimise the audible effect of lost packets in VoIP applications. It is nottied to any particular codec, and could be used with almost any codec which does notspecify its own procedure for packet loss concealment.Where a codec specific concealment procedure exists, the algorithm is usually builtaround knowledge of the characteristics of the particular codec. It will, therefore,generally give better results for that particular codec than this generic concealer will.\section plc_page_sec_2 How does it work?While good packets are being received, the plc_rx() routine keeps a record of the trailingsection of the known speech signal. If a packet is missed, plc_fillin() is called to producea synthetic replacement for the real speech signal. The average mean difference function(AMDF) is applied to the last known good signal, to determine its effective pitch.Based on this, the last pitch period of signal is saved. Essentially, this cycle of speechwill be repeated over and over until the real speech resumes. However, several refinementsare needed to obtain smooth pleasant sounding results.- The two ends of the stored cycle of speech will not always fit together smoothly. This can  cause roughness, or even clicks, at the joins between cycles. To soften this, the  1/4 pitch period of real speech preceeding the cycle to be repeated is blended with the last  1/4 pitch period of the cycle to be repeated, using an overlap-add (OLA) technique (i.e.  in total, the last 5/4 pitch periods of real speech are used).- The start of the synthetic speech will not always fit together smoothly with the tail of  real speech passed on before the erasure was identified. Ideally, we would like to modify  the last 1/4 pitch period of the real speech, to blend it into the synthetic speech. However,  it is too late for that. We could have delayed the real speech a little, but that would  require more buffer manipulation, and hurt the efficiency of the no-lost-packets case  (which we hope is the dominant case). Instead we use a degenerate form of OLA to modify  the start of the synthetic data. The last 1/4 pitch period of real speech is time reversed,  and OLA is used to blend it with the first 1/4 pitch period of synthetic speech. The result  seems quite acceptable.- As we progress into the erasure, the chances of the synthetic signal being anything like  correct steadily fall. Therefore, the volume of the synthesized signal is made to decay  linearly, such that after 50ms of missing audio it is reduced to silence.- When real speech resumes, an extra 1/4 pitch period of sythetic speech is blended with the  start of the real speech. If the erasure is small, this smoothes the transition. If the erasure  is long, and the synthetic signal has faded to zero, the blending softens the start up of the  real signal, avoiding a kind of "click" or "pop" effect that might occur with a sudden onset.\section plc_page_sec_3 How do I use it?Before audio is processed, call plc_init() to create an instance of the packet lossconcealer. For each received audio packet that is acceptable (i.e. not including those beingdropped for being too late) call plc_rx() to record the content of the packet. Note this maymodify the packet a little after a period of packet loss, to blend real synthetic data smoothly.When a real packet is not available in time, call plc_fillin() to create a sythetic substitute.That's it!*//*! Minimum allowed pitch (66 Hz) */#define PLC_PITCH_MIN           120/*! Maximum allowed pitch (200 Hz) */#define PLC_PITCH_MAX           40/*! Maximum pitch OLA window */#define PLC_PITCH_OVERLAP_MAX   (PLC_PITCH_MIN >> 2)/*! The length over which the AMDF function looks for similarity (20 ms) */#define CORRELATION_SPAN        160/*! History buffer length. The buffer much also be at leat 1.25 times    PLC_PITCH_MIN, but that is much smaller than the buffer needs to be for    the pitch assessment. */#define PLC_HISTORY_LEN         (CORRELATION_SPAN + PLC_PITCH_MIN)typedef struct{    /*! Consecutive erased samples */    int missing_samples;    /*! Current offset into pitch period */    int pitch_offset;    /*! Pitch estimate */    int pitch;    /*! Buffer for a cycle of speech */    float pitchbuf[PLC_PITCH_MIN];    /*! History buffer */    int16_t history[PLC_HISTORY_LEN];    /*! Current pointer into the history buffer */    int buf_ptr;} plc_state_t;#ifdef __cplusplusextern "C" {#endif/*! Process a block of received audio samples.    \brief Process a block of received audio samples.    \param s The packet loss concealer context.    \param amp The audio sample buffer.    \param len The number of samples in the buffer.    \return The number of samples in the buffer. */int plc_rx(plc_state_t *s, int16_t amp[], int len);/*! Fill-in a block of missing audio samples.    \brief Fill-in a block of missing audio samples.    \param s The packet loss concealer context.    \param amp The audio sample buffer.    \param len The number of samples to be synthesised.    \return The number of samples synthesized. */int plc_fillin(plc_state_t *s, int16_t amp[], int len);/*! Process a block of received V.29 modem audio samples.    \brief Process a block of received V.29 modem audio samples.    \param s The packet loss concealer context.    \return A pointer to the he packet loss concealer context. */plc_state_t *plc_init(plc_state_t *s);#ifdef __cplusplus}#endif#endif/*- End of file ------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线免费观看视频| 欧美一区二区三区不卡| 久久狠狠亚洲综合| 日韩专区欧美专区| 日韩va欧美va亚洲va久久| 午夜影院久久久| 午夜欧美一区二区三区在线播放| 亚洲男女毛片无遮挡| 亚洲色图欧美偷拍| 一区二区三区中文字幕精品精品| 亚洲欧美日韩精品久久久久| 亚洲视频一区在线| 亚洲成av人片一区二区三区 | 91视频国产资源| 一本大道av伊人久久综合| 在线这里只有精品| 欧美日韩国产a| 精品国产区一区| 综合中文字幕亚洲| 日韩精品一二三四| 激情六月婷婷久久| 99在线精品观看| 欧美自拍丝袜亚洲| 欧美mv和日韩mv国产网站| 国产校园另类小说区| 亚洲日本乱码在线观看| 视频一区国产视频| 色综合久久久网| 欧美福利一区二区| 精品国产乱码久久久久久夜甘婷婷 | 久久女同互慰一区二区三区| 国产色产综合色产在线视频| 亚洲视频中文字幕| 蜜臀久久99精品久久久画质超高清| 国产一二三精品| 91高清在线观看| 久久久国产精品麻豆| 一区二区免费看| 国产麻豆视频精品| 欧美综合欧美视频| 国产午夜精品理论片a级大结局| 亚洲精品视频自拍| 国产九九视频一区二区三区| 欧美在线一二三| 欧美激情艳妇裸体舞| 日韩中文字幕不卡| 99久久精品国产网站| 精品毛片乱码1区2区3区| 亚洲人成在线观看一区二区| 裸体歌舞表演一区二区| 色偷偷88欧美精品久久久| 精品国产伦一区二区三区观看体验| 一区二区三区毛片| 成人av在线网站| 精品播放一区二区| 视频在线在亚洲| 一本色道久久综合亚洲91| 国产偷v国产偷v亚洲高清| 日韩高清在线一区| 欧美日韩精品欧美日韩精品| 亚洲视频一二三| 成人av影院在线| 国产日韩av一区| 99国内精品久久| 国产亚洲综合性久久久影院| 蜜桃视频在线观看一区二区| 欧美美女网站色| 午夜久久久久久久久| 91网站在线播放| 成人欧美一区二区三区| 国产乱国产乱300精品| 精品欧美一区二区久久| 日产精品久久久久久久性色| 欧美日韩国产小视频| 亚洲午夜在线电影| 欧美色图片你懂的| 亚洲成av人片在线| 欧美日韩精品免费| 欧美bbbbb| 日韩欧美国产wwwww| 免费成人在线观看视频| 日韩午夜激情电影| 裸体歌舞表演一区二区| 欧美xxxxxxxx| 国产成人高清视频| 国产精品传媒入口麻豆| 不卡电影免费在线播放一区| 国产精品久久久一本精品| a4yy欧美一区二区三区| 亚洲免费成人av| 欧美日韩一级二级三级| 日本在线观看不卡视频| 日韩一区二区三| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日产国产欧美视频一区精品| 欧美一区二区在线不卡| 国产精品影视网| 亚洲素人一区二区| 欧美一区二区三区视频免费| 国产一区二区看久久| 中文字幕日韩av资源站| 欧美日韩精品免费观看视频| 久久精品国产99国产精品| 国产欧美在线观看一区| 91麻豆自制传媒国产之光| 五月天激情综合| 国产日韩欧美不卡| 欧美日韩在线三区| 韩国av一区二区三区在线观看| 国产精品久久久久久久久久久免费看 | 精品一区二区三区免费| 国产网红主播福利一区二区| 在线观看日韩一区| 国产一区久久久| 一区二区三区高清不卡| 亚洲精品一区二区精华| 色婷婷国产精品综合在线观看| 国产原创一区二区| 亚洲乱码中文字幕综合| 日韩欧美你懂的| 日本道精品一区二区三区| 久久99国产精品久久99| 亚洲免费电影在线| 久久久精品国产99久久精品芒果| 色999日韩国产欧美一区二区| 久久国产视频网| 亚洲aⅴ怡春院| 中文字幕中文字幕一区二区| 日韩精品一区在线观看| 欧美怡红院视频| 99久久精品国产网站| 国产九色精品成人porny| 日本中文字幕不卡| 亚洲国产日韩a在线播放| 国产精品视频第一区| 日韩三级视频在线观看| 欧美色图天堂网| 一本色道亚洲精品aⅴ| 成人综合在线网站| 激情文学综合网| 人禽交欧美网站| 日韩激情在线观看| 亚洲一区二区三区四区在线| 亚洲精品视频自拍| 亚洲欧美日韩在线| 最近日韩中文字幕| 中文字幕中文字幕一区二区| 亚洲国产精品成人综合| 精品国产区一区| 久久一夜天堂av一区二区三区| 制服.丝袜.亚洲.中文.综合| 欧美日韩亚洲另类| 欧美女孩性生活视频| 欧美日韩1区2区| 欧美亚洲一区二区三区四区| 欧美性猛交xxxxxxxx| 色欧美乱欧美15图片| 在线观看一区二区视频| 欧美在线免费观看视频| 欧美日韩精品一区二区三区蜜桃 | 亚洲卡通欧美制服中文| 亚洲精品中文在线影院| 夜夜揉揉日日人人青青一国产精品 | 国产成人在线观看| 成人黄色在线网站| 91九色最新地址| 欧美喷潮久久久xxxxx| 欧美一级夜夜爽| 久久精品一区二区三区不卡 | 欧美日韩电影在线| 日韩欧美色综合网站| 欧美α欧美αv大片| 精品国产第一区二区三区观看体验| 久久这里只有精品首页| 中文av一区二区| 亚洲国产精品一区二区久久| 日韩av不卡在线观看| 国产精品主播直播| 91国内精品野花午夜精品| 欧美日韩一区不卡| 久久影视一区二区| 亚洲精品视频免费看| 久久爱另类一区二区小说| 粉嫩av一区二区三区粉嫩| 91在线免费播放| 欧美日韩高清一区| 欧美高清在线视频| 丝袜a∨在线一区二区三区不卡| 国产一区二区三区日韩 | 五月天亚洲婷婷| 豆国产96在线|亚洲| 精品污污网站免费看| 精品1区2区在线观看| 亚洲国产另类av| 不卡一区在线观看| 欧美大片一区二区| 一区二区三区在线观看动漫| 国产在线观看免费一区| 欧美日韩在线直播| 国产精品美女久久久久av爽李琼|