【海思篇】【Hi3516DV300】六、音频输入篇

本文档旨在指导如何使海思Hi3516DV300板子的麦克风工作,内容涵盖准备工作、麦克风调试步骤,包括音频参数配置、Audio Codec设置及音频流获取,适合爱好者学习了解。
摘要由CSDN通过智能技术生成

目的:使海思板的麦克风和扬声器工作起来;让更多的爱好者了解海思、加入海思。

目录

1 准备工作

1)音频能力

2)检测板子

3)sample下audio编译

2 麦克风调试

1)配置acap音频参数

2)启动ai(关闭重采样及不使用VQE)

3)配置Audio Codec

4)取音频流

3 总结


 

1 准备工作

1)音频能力

  • 集成 Audio codec,支持 16bit 语音输入和输出
  • 支持单声道 mic 差分输入,降低底噪
  • 支持单端双声道输入
  • 支持 I 2 S 接口,支持对接外部 Audio codec

2)检测板子

我的板子就是MIC同时接了AC_INL和AC_INR,最后录音数据都是0数据。最后AC_INR接地就ok了。

3)sample下audio编译

声音调试是基于样例sample下audio(依赖common文件夹)

Hi3516CV500_SDK_V2.0.1.1/smp/a7_linux/mpp/sample

make ARCH=arm CROSS_COMPILE=arm-himix200-linux-

2 麦克风调试

1)配置acap音频参数

    AIO_ATTR_S stAioAttr;
    stAioAttr.enSamplerate   = AUDIO_SAMPLE_RATE_48000;
    stAioAttr.enBitwidth     = AUDIO_BIT_WIDTH_16;
    stAioAttr.enWorkmode     = AIO_MODE_I2S_MASTER;
    stAioAttr.enSoundmode    = AUDIO_SOUND_MODE_MONO;
    stAioAttr.u32EXFlag      = 0;
    stAioAttr.u32FrmNum      = 30;
    stAioAttr.u32PtNumPerFrm = AACLC_SAMPLES_PER_FRAME;
    stAioAttr.u32ChnCnt      = 1;
    stAioAttr.u32ClkSel      = 0;
    stAioAttr.enI2sType      = AIO_I2STYPE_INNERCODEC;

2)启动ai(关闭重采样及不使用VQE)

/******************************************************************************
* function : Start Ai
******************************************************************************/
HI_S32 SAMPLE_COMM_AUDIO_StartAi(AUDIO_DEV AiDevId, HI_S32 s32AiChnCnt,
                                 AIO_ATTR_S* pstAioAttr, AUDIO_SAMPLE_RATE_E enOutSampleRate, HI_BOOL bResampleEn, HI_VOID* pstAiVqeAttr, HI_U32 u32AiVqeType)
{
    HI_S32 i;
    HI_S32 s32Ret;

    s32Ret = HI_MPI_AI_SetPubAttr(AiDevId, pstAioAttr);
    if (s32Ret)
    {
        printf("%s: HI_MPI_AI_SetPubAttr(%d) failed with %#x\n", __FUNCTION__, AiDevId, s32Ret);
        return s32Ret;
    }

    s32Ret = HI_MPI_AI_Enable(AiDevId);
    if (s32Ret)
    {
        printf("%s: HI_MPI_AI_Enable(%d) failed with %#x\n", __FUNCTION__, AiDevId, s32Ret);
        return s32Ret;
    }


    for (i = 0; i < s32AiChnCnt>>pstAioAttr->enSoundmode; i++)
    {
        s32Ret = HI_MPI_AI_EnableChn(AiDevId, i);
        if (s32Ret)
        {
            printf("%s: HI_MPI_AI_EnableChn(%d,%d) failed with %#x\n&
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值