pjsip / pjsua2-如何获取音频流以将其发送到语音转文本引擎

时间:2019-06-06 10:36:05

标签: python audio speech-to-text pjsip pjsua2

我正在尝试从通话音频媒体中获取音频流,以便将其发送到语音转文本引擎(从流输入中转录音频)。关于如何实现这一目标的任何想法?

版本信息:POSIX的pjlib 2.8-svn

谢谢。

2 个答案:

答案 0 :(得分:0)

使用Call类的onCallMediaState中的getAudioMedia(),我们可以获得调用的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....
    } 
}

对不起,但我希望它能对您有所帮助。

答案 1 :(得分:0)

我从pjsip常见问题解答中找到了一个建议:https://trac.pjsip.org/repos/wiki/FAQ#audio-man

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

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

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