pjsip/pjsua2如何获取音频流并将其发送到SpeechtoText引擎

2024-09-30 19:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从CallAudioMedia获得一个音频流,以便能够将其发送到语音到文本引擎(从流输入中转录音频)。有什么办法吗?在

版本信息:pjlib 2.8-svn for POSIX

提前谢谢你。在


Tags: 引擎文本forsvn语音音频posix办法
2条回答

在Call类的onCallMediaState中使用getAudioMedia()可以得到Call的AudioMedia, 类似的(C++中的简单方法):

void SipCall::onCallMediaState(OnCallMediaStateParam &prm) {
    this->callInfo = getInfo();
    unsigned media_size = this->callInfo.media.size();
    for (unsigned i = 0; i < media_size; i++) { // ci.media.size()
        AudioMedia audioMedia = getAudioMedia(i);
        // do somthing with audio Media
        // example send to audio device:
        // AudDevManager& manager = Endpoint::instance().audDevManager();
        // audioMedia.startTransmit(manager.getPlaybackDevMedia());
        // do something....
    } 
}

抱歉,但我希望能有所帮助。在

我从pjsip的FAQ中找到了一个建议:https://trac.pjsip.org/repos/wiki/FAQ#audio-man

您可以通过创建新端口来获取实时音频媒体,并在mem_capture.cwav_writer.c中找到有用的信息:

对于仅接收媒体端口,示例包括:

  • mem_capture.c来自pjmedia(用于将音频保存到缓冲区的媒体端口)。在
  • wav_writer.c来自pjmedia(用于将音频保存到WAVE文件的媒体端口)。在

相关问题 更多 >