[英]Using soundsc in Octave, on Windows 7
好吧,我在開始這個問題時遇到了麻煩。 我試圖在Octave中使用soundsc函數,但我一直收到此錯誤:
error: sound.m: No command line utility found for sound playing
我在網上搜索了一些但卻找不到該做什么。 這是我在網上找到的包含錯誤的文件的源代碼的鏈接: http : //octave-audio.sourcearchive.com/documentation/1.1.3/sound_8m-source.html
我認為錯誤來自這里:
## What do we use for playing?
global sound_play_utility;
if ~isempty(sound_play_utility),
## User specified command
elseif (file_in_path(EXEC_PATH, "ofsndplay"))
## Mac
sound_play_utility = "ofsndplay -"
elseif (file_in_path(EXEC_PATH, "play"))
## Linux (sox)
sound_play_utility = "play -t AU -";
else
error("sound.m: No command line utility found for sound playing");
endif
我只是碰巧使用Windows 7,所以我想我必須以某種方式指定自己的路徑? 更改源代碼? 我不知道我想要做些什么才能讓它發揮作用! 有人能告訴我嗎?
我不知道這是否適用於Windows 7,但這就是我設法在Windows XP上運行soundsc,sox和octave:假設你已經安裝了八度,
現在,八度音程應該找到播放聲音的“播放”可執行文件。
您可以使用以下代碼嘗試它,這應該產生一些丑陋的嗶嗶聲;-)
% Sampling theorem - mirror frequency
% s3s11_1.m * mw * 11/17/2007
FS = 8000; % sampling frequency in Hz
t = 0:1/FS:1; % normalized time
x = [];
for k = 1:7
x = [x sin(2*pi*k*1e3*t)]; % signal 1...7 kHz
end
soundsc(x,FS) % sound
希望有所幫助:-)。
您鏈接的文件包含頂部的文檔,其中包括以下內容:
## This function writes the audio data through a pipe to the program
## "play" from the sox distribution.
所以你需要為初學者安裝sox 。 這將包括play.exe
。 然后你必須在Octave中設置全局變量sound_play_utility
的值以反映你安裝sox
,或者確保file_in_path(EXEC_PATH)
東西可以找到play.exe
。 從您發布的代碼片段向下看幾行,看起來該文件將該變量傳遞給popen
,它應該啟動一個新進程。 我在Windows機器上從未在Octave上做過類似的事情,所以我無法幫助您了解具體細節。
通過查看代碼,您基本上可以看到您需要做的事情。 Octave模塊首先檢查您是否將全局sound_play_utility
設置為要用於播放聲音的實用程序。 這真的是你的選擇,實際上,Windows上的任何音頻播放器都應該工作(mplayer,foobar,Winamp,無論如何)。
僅當此變量為空時,其他檢查才會失敗,因此只需導出全局並將其設置為已安裝的播放器的路徑。
我不相信所有音頻播放器都能正常工作。 他們必須能夠通過管道將AU文件播放到標准輸入。 以下是Octave命令,我用它來啟用VLC播放。 您可能需要在VLC_PROGRAM
變量中調整VLC程序的路徑。
VLC_PROGRAM="c:/Program Files (x86)/VideoLan/VLC/vlc";
VLC_OPTIONS="-q --play-and-exit -";
sound_play_utility=["cmd /c \"" VLC_PROGRAM "\" " VLC_OPTIONS];
clear VLC_PROGRAM VLC_OPTIONS;
我建議將這些命令放在.octaverc
啟動文件中,以便每次啟動Octave時自動配置聲音播放器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.