簡體   English   中英

pjsip/pjsua2 - 如何獲取音頻流以將其發送到 Speech-to-Text 引擎

[英]pjsip/pjsua2 - how to get audio stream to send it to Speech-to-Text engine

我正在嘗試從呼叫音頻媒體獲取音頻流,以便能夠將其發送到 Speech-to-Text 引擎(從流輸入轉錄音頻)。 關於如何實現這一目標的任何想法?

版本信息:用於 POSIX 的 pjlib 2.8-svn

先感謝您。

我從 pjsip 常見問題解答中找到了一個建議: https ://trac.pjsip.org/repos/wiki/FAQ#audio-man

您可以通過創建一個新的端口獲取實時音頻媒體,並找到有用的信息mem_capture.cwav_writer.c

對於僅接收器的媒體端口,示例包括:

  • mem_capture.c從pjmedia(媒體端口保存音頻的緩沖液)。
  • wav_writer.c從pjmedia(媒體端口保存音頻波形文件)。

我也有這個問題。 你解決了嗎?

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

抱歉,但我希望它能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM