假設我有來自兩個不同的API,功能A和B重定向從一個功能到另一種功能的音頻輸出在python
默認情況下繪製的兩個功能,功能A的音頻數據輸出到一個wav文件。
默認情況下,函數B從wav文件獲取音頻輸入並進行處理。
是否可以將數據從函數A流式傳輸到B?如果是這樣,我該怎麼做?如果這是相關的,我在研究lubuntu。
這是一個功能我想從PJSUA蟒蛇API:
create_recorder(個體經營,文件名) 創建WAV文件記錄。
關鍵字參數 名 - WAV文件名
返回: WAV記錄器ID
而且從Pocketsphinx的Python API,這是函數B
decode_raw(...)
解碼來自文件的原始音頻。 參數: fh(文件) - 從中讀取音頻的文件句柄。 uttid(str) - 給這個話語的標識符。 maxsamps(int) - 要讀取的最大采樣數。如果未指定或-1,則將讀取文件的其餘部分。
更新:
當我試圖通過一個套接字或命名管道的文件名,它輸出此錯誤信息,似乎是Python綁定使用C函數不喜歡什麼,但.wav文件。 ..爲什麼會這樣?
pjsua_aud.c .pjsua_recorder_create()錯誤:無法確定/ tmp/t_fifo的文件格式。異常:對象:LIb,操作=創建(記錄器),錯誤=選項/操作不支持(PJ_ENOTSUP)
我需要使用create_recorder()返回的值,它是一個int,用於獲取wav recorder id(不直接傳遞給decode_raw(),而是傳遞給其他某個函數)
這取決於,你通過什麼函數'A'?你傳遞一個文件名或文件對象嗎?如果函數'A'可以帶一個文件對象,那麼您可以改爲給它一個StreamIO對象。 – mgilson
這是一個文件名....我要編輯我原來的帖子,以提供更多信息。 –
您是否嘗試過傳遞不同的名稱:'/ tmp/t_fifo.wav'而不是'/ tmp/t_fifo'? – jfs