MathematicaはUbuntu 11.04で音を出していません。

MathematicaはUbuntu 11.04で音を出していません。

ライセンスを数日待ってから、インストールする機会がありました。ヴォルフラム数学8自宅で。しかし、Mathematicaは未知の理由でサウンド出力を生成できないように見えるため、Play関数は何もしません。Speakこの問題をどのように解決できるかを知っている人はいますか?

答え1

Ubuntuはパルスオーディオサウンドシステム。paplayサウンドファイルを再生するコマンドが提供されます。あなたが見つけた方法Ubuntu Wikiでpaplay動作する必要がありますが、現在は使用されていないaRtsの代わりに(または他の同等のプログラム)を使用する必要があります。

次はUbuntu Wiki~/.Mathematica/Kernel/init.mまたは含まれているファイルに追加してください。paplay代わりに実行するだけでなく、artsplayデータを一時ファイルに保存する代わりにパイプに変更しました。検証されていません。

Begin["System`Private`"]
Unprotect[$SoundDisplayFunction]
Clear[$SoundDisplayFunction]
$SoundDisplayFunction =
    Module[{stream},
      stream = OpenWrite["!pacat", BinaryFormat -> True];
      BinaryWrite[stream, ExportString[#1, "WAV"]];
      Close[stream];
    ] &
Protect[$SoundDisplayFunction]
End[];

また、見ることができますMathematica 8.0.1はLinuxでは音が出ません。同様のアプローチがMathematica 8でも動作することを報告しました(PulseAudioの代わりにALSAを使用)。

答え2

問題はMathematicaのバージョンはOSSを使用し、UbuntuはALSAを使用することです。

次の「sound.m」スクリプトを次に追加します~/.Mathematica/Kernel

(* ::Package:: *)

(*
  * Set up a $SoundDisplayFunction for the
  * Linux version of Mathematica and potentially other unixes, too.
  *)

Begin["System`Private`"]

Unprotect[$SoundDisplayFunction]
Clear[$SoundDisplayFunction]

$SoundDisplayFunction :=
     Module[{playCmd,soundFileName},
            Export[$SoundDisplay, #1];
         (* is there a way to get the sample rate, etc. from the audio 
stream? *)
         playCmd = "/usr/bin/play";
         soundFileName = "/tmp/" <> ToString[Unique["sound"]] <> ".wav";
         playCmd = playCmd <> " " <> soundFileName;

         Export[soundFileName, #1, "WAV"];
         Run[playCmd];
         Run["/bin/rm -f " <> soundFileName];
        ] &

Protect[$SoundDisplayFunction]

End[];

(********************CODE ENDS***************************)

After creating 'sound.m', add the following line
to ~/.Mathematica/Kernel/init.m :

Get["sound.m"];

カーネルを再ロードするには、Mathematicaを再起動してください。

答え3

私も同じ問題があります。 Mathematica 10にアップグレードした後、Linuxでサウンド生成を実行できます。

関連情報