回声

第六节、迭代回声服务器端与客户端实现

谁说胖子不能爱 提交于 2020-02-02 00:17:32
echo_server.c # include <stdio.h> # include <stdlib.h> # include <string.h> # include <unistd.h> # include <arpa/inet.h> # include <sys/socket.h> # define SERV_IP "127.0.0.1" # define BUF_SIZE 1024 void error_handing ( const char * message ) ; int main ( int argc , char const * argv [ ] ) { if ( argc != 2 ) { printf ( "Usage %s <port>\n" , argv [ 0 ] ) ; exit ( 1 ) ; } int serv_fd = socket ( PF_INET , SOCK_STREAM , 0 ) ; if ( serv_fd == - 1 ) { error_handing ( "socket() error" ) ; exit ( 1 ) ; } struct sockaddr_in serv_addr ; memset ( & serv_addr , 0 , sizeof ( serv_addr ) ) ; serv_addr . sin

声学回声解决方法经验

匿名 (未验证) 提交于 2019-12-02 23:00:14
声学回声消除的挑战 声学回声(Acoustic Echo-AE)是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的(麦克风采集了近端声音的同时也采集了扬声器发出来的声音)。 当调用Engine接口时,如果操作系统给出的延时估算不准确,则无法正常工作;当调用FDE-Formant Delay Estimate, SDE-Spectru Delay Estimate接口时,初始化需要2-5秒,之后才能正常工作,偶尔会出现回声(1%以内),但能很快恢复;当调用OS接口时,每个机型测试过后才能使用。 菊风声学回声解决方法 菊风MME为了达到良好的声学回声消除效果,同时对输出和输入两个方向的语音信号进行了处理。在AEC算法上,菊风MME主要采用以下三种方式:第一种是Engine,即依赖于操作系统给出的声卡缓冲大小计算延时,主要应用于iPad、iPod、touch和普通PC机;第二种是FDE(Formant Delay Estimate),即基于共振峰估计延时及SDE(Spectrum Delay Estimate),即频域延时估计,主要应用于Android 设备、PC 虚拟机和普通PC机等,如果手机不带AEC功能,一般使用Sde算法比较多,效果好;第三种是OS,调用操作系统自带的AEC功能,带有这类功能的操作系统,一般是iPhone还有一些比较好的Android手机,比如三星等