Firefly开源社区

标题: duer_linux 和alsa_audio_main_service是怎样通信的 [打印本页]

作者: fanshuming2011    时间: 2018-12-4 16:43
标题: duer_linux 和alsa_audio_main_service是怎样通信的
如题,自己在buildroot 中选中并且编译duerSdk,但是有个疑问alsa_audio_main_service 没有源码,搞不清除duer_linux 和alsa_audio_main_service是怎样通信的传送录音数据的,请大神指点,感谢
作者: Livvol    时间: 2018-12-4 18:09
DuerOS Linux SDK的源码是百度那边提供的,有些百度不开源的代码,可能要你自己去找百度沟通了,或者到DuerOS开放平台看看。
作者: fanshuming2011    时间: 2018-12-5 10:13
好的,谢谢
作者: fanshuming2011    时间: 2018-12-10 10:10
请问这个alsa_audio_main_service 也是百度提供的么
作者: Livvol    时间: 2018-12-10 10:37
fanshuming2011 发表于 2018-12-10 10:10
请问这个alsa_audio_main_service 也是百度提供的么

如果你在SDK没找到源码,那就是没有的了
作者: fanshuming2011    时间: 2018-12-10 10:42
也就是说alsa_audio_main_service 这个也是百度提供给你们的,如果这样的话,就没法搞清除怎样把录音数据给到dcs sdk的,我们很难在你们的板子上做进一步开发
作者: fanshuming2011    时间: 2018-12-10 10:52
SDK里面没有找到源码,看百度的官网说只要跑duer_linux,但是你们的板子上跑起来后,有这个alsa_audio_main_service服务,而且必须要有这个服务,请问你们的6mic 的驱动和应用是怎样和百度的SDK交互的呢,感谢
作者: Livvol    时间: 2018-12-10 10:57
fanshuming2011 发表于 2018-12-10 10:42
也就是说alsa_audio_main_service 这个也是百度提供给你们的,如果这样的话,就没法搞清除怎样把录音数据给 ...

这个你在什么平台都一样啊,得先过百度这一关啊。至于你们为啥一定要搞清录音数据给到SDK,我也不太懂,这个不影响你开发的吧。你研究百度AI的其他项目比如语音识别,都是直接获取PCM数据流,传到服务器,本地不做处理的。当然这也是我个人想法,我也没看过源码
作者: fanshuming2011    时间: 2018-12-10 11:55
请问百度是怎样拿到PCM 数据流的呢,源码里面没有看到,还有,比如我想更换唤醒词,不想用小度,小度做为唤醒词,应该怎样替换,现在的板子是6麦的,假如我想改成2麦或是4麦的,我该怎样做呢,另外想请问一下,怎样向百度申请sdk呢,我看百度官网描述的SDK 和我用你们的buildroot 下载的sdk目录不一样,百度的官网描述的SDK有唤醒词资源包,你们buildroot下载的没有唤醒词资源包
作者: Livvol    时间: 2018-12-10 13:13
本帖最后由 Livvol 于 2018-12-10 13:18 编辑

如果需要这些,可以联系商务product@t-firefly.com
作者: fanshuming2011    时间: 2018-12-10 15:31
好的,在源码DCSApplication.cpp中,这个地方被注释调了,请问是你们改动的还baidu 给你们的就是这样的

#if 0
    m_audioLibName = Configuration::getInstance()->getAudioLibName();

    bool ret = m_audioDyLib->load(m_audioLibName);
    if (!ret) {
        LOGGER_ERROR(LX("initialize Failed").d("reason", "load library error"));
        return false;
    }
    createT * m_create = (createT *)m_audioDyLib->getSym("create");

    if (!m_create) {
        LOGGER_ERROR(LX("initialize Failed").d("reason", "get symbol error"));
        return false;
    }

    std::shared_ptr<AudioMicrophoneInterface>  micWrapper = m_create(m_dcsSdk);

    micWrapper->setRecordDataInputCallback(recordDataInputCallback);

    applicationManager->setMicrophoneWrapper(micWrapper);
#endif




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1