ライセンスを数日待ってから、インストールする機会がありました。ヴォルフラム数学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でサウンド生成を実行できます。