1

我正在尝试从呼叫音频媒体获取音频流,以便能够将其发送到 Speech-to-Text 引擎(从流输入转录音频)。关于如何实现这一目标的任何想法?

版本信息:POSIX 的 pjlib 2.8-svn

先感谢您。

4

2 回答 2

0

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

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

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

  • ​<code>mem_capture.c from pjmedia(将音频保存到缓冲区的媒体端口)。
  • ​<code>wav_writer.c from pjmedia(将音频保存到 WAVE 文件的媒体端口)。
于 2019-08-09T08:40:30.033 回答
-1

在 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....
    } 
}

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

于 2019-08-01T04:32:37.327 回答