簡體   English   中英

在Windows 7上使用Octave中的soundsc

[英]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:假設你已經安裝了八度,

  1. 下載並安裝Win32的sox: http//sox.sourceforge.net/
  2. 轉到安裝了sox的目錄(例如C:\\ sox-14-3-1),復制“sox.exe”並將副本重命名為“play”。 重要說明:您必須刪除“.exe”文件擴展名! 確保已在資源管理器中設置設置以顯示文件擴展名。
  3. 使用命令行參數啟動Octave --exec-path C:\\ sox-14-3-1(或者您選擇安裝sox的路徑)。 (如果您使用qtoctave作為GUI,您也可以在“八度參數”下的設置中的“八度”選項卡中的設置中進行設置)

現在,八度音程應該找到播放聲音的“播放”可執行文件。

您可以使用以下代碼嘗試它,這應該產生一些丑陋的嗶嗶聲;-)

% 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.

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