1
我想用aubiopitch
連續輸出來自輸入源的信號的頻率。由於aubiopitch
喜歡有它的輸入是一個文件,不是甲流,我嘗試使用process substitution:在文件描述符上連續運行子假名
$ aubiopitch -i <(sox -q -d -t wav -)
我預計這將輸出信號的頻率被讀出我的默認的音頻輸入設備。相反,我得到這個:
./sox WARN wav: Length in output .wav header will be wrong since can't seek to fix it
AUBIO ERROR: source_apple_audio: Failed opening /dev/fd/63, error in ExtAudioFileOpenURL (-40)
AUBIO ERROR: source_wavread: could not find RIFF header in /dev/fd/63
AUBIO ERROR: source: failed creating aubio source with /dev/fd/63 at samplerate 0 with hop_size 256
Error: could not open input file /dev/fd/63
似乎問題不說謊與sox
,因爲該命令正常工作:
cat <(sox -q -d -t wav -) > output.wav
它創建了一個output.wav
文件似乎沒有任何有麻煩打,當然除了aubiopitch
:
$ aubiopitch output.wav
Segmentation fault: 11
這是怎麼回事? RIFF標題的長度是否設置錯誤?
如果有問題,我正在運行OSX 10.7.5,並且我重新編譯了aubio以使用我的舊OSX版本。
對於任何人誰來尋找做類似的事情,我建立我自己的解決方案:https://github.com/whereswalden90/analyze-signal HTTPS://gist.github。 COM/whereswalden90/9b352f577e5f36533cd1 – whereswalden 2014-10-14 21:30:15