回声消除


SDK内提供回声对消(AEC)的能力,AEC的调用方式主要取决于设备的MIC数量,AEC效果的好坏,更多的取决于回路音频的质量,如回路音频和MIC采集到的音频未对齐,或者回路音频质量比较差,那么AEC的效果都不能得到保证。在车载项目中,我们有专门的音频工程师协助解决这部分的问题,这部分工作一般需要先于SDK对接工作启动,好的音频质量,是产品拥有一个好的交互体验的基本前提。

ECHO 资源配置

因为SDK同时支持在内置录音机做回声消除,故echo相关配置放置在了SDK init部分传入。 如需要单独使用echo引擎,也需要在sdk init 之前就传入。

EchoConfig echoConfig = new EchoConfig.Builder()
                .setAecResource(SampleConstants.AEC_RES)//设置aec资源路径
                .setChannels(2)//设置音频通道数,目前支持2、4、6三个参数
                .setMicNumber(1)//设置mic数,目前支持 1、2、4三个参数
                .setSavedDirPath("/sdcard/speech/echo")//设置echo前后音频保存路径
                .create();

独立ECHO引擎

EchoKernel echoKernel = new EchoKernel(new EchoKernelListener() {
            @Override
            public void onInit(int status) {

            }

            @Override
            public void onResultBufferReceived(byte[] data) {
                //AEC 后的单通道音频数据
            }

            @Override
            public void onError(AIError error) {

            }
        });


// 初始化 
echoKernel.newKernel();       

//启动引擎
echoKernel.startKernel();

//feed音频
echoKernel.feed(data);

//停止引擎
echoKernel.stopKernel();

//销毁引擎
echoKernel.releaseKernel();

results matching ""

    No results matching ""