2014-11-15 60 views
1

我該怎麼做?Praat和sox信息腳本

  1. 聲音對象被選擇
  2. 節省聲音對象爲WAV(作爲臨時文件名)
  3. 運行sox -i adsda.wavsoxi adsda.wav
  4. 輸出到顯示器的sox -i
  5. 結果刪除臨時文件

回答

0

您可以撥打執行指令,然後在一個臨時文件中捕獲輸出。然後,您可以通過readFile$()將這個臨時文件讀入Praat。這裏有一個例子:

infile$ = "sound.wav" 
outfile$ = "soxi.out" 
sound = Create Sound as pure tone: "tone", 
    ... 1, 0, 0.4, 44100, 440, 0.2, 0.01, 0.01 
Save as WAV file: infile$ 

system soxi 'infile$' > 'outfile$' 
soxi$ = readFile$(outfile$) 
appendInfo: soxi$ 

deleteFile: infile$ 
deleteFile: outfile$ 
removeObject: sound 

我不知道什麼樣的變化(如果有的話),這將需要在Windows中,但考慮您正在使用sox,這可能不是一個問題。

請注意,目前(Praat v.5.4)system指令仍使用舊的語法,它使用變量替換。這可能會在未來發生變化。但即使如此,這個腳本應該仍然可用。

+0

謝謝!由於某種原因,我得到一個錯誤:「未知函數«readFile $»在公式中 腳本行5未執行或完成: «soxi $ = readFile $(outfile $)» 菜單命令」運行「未完成。不知道爲什麼,但我得到的praat信息。 @jja – user3022418

+0

這很奇怪。未知的功能錯誤可能是由於Praat的舊版本。在這種情況下,你可以使用'soxi $ <'outfile $'',這是做舊的方式。雖然我還沒有嘗試過。但它似乎仍在爲你工作,所以這很好。 :) – jja