Ubuntu 11.04下Mathematica没有声音

Ubuntu 11.04下Mathematica没有声音

在等待了几天的许可证后,我现在有机会安装沃尔夫拉姆数学 8在家里。然而,PlaySpeak函数都没有做任何事情,因为似乎 Mathematica 由于未知原因无法产生任何声音输出。有人知道我该如何解决这个问题吗?

答案1

Ubuntu 使用脉冲音频音响系统。它带有paplay播放声音文件的命令。您找到的方法在 Ubuntu 维基上应该可以工作,但是您需要使用paplay(或其他一些等效程序)而不是现在过时的 aRts。

这是一些改编自的代码Ubuntu 维基。将其添加到您的~/.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[];

也可以看看Linux下Mathematica 8.0.1没有声音,报告称类似的方法在 Mathematica 8 中也有效(使用 ALSA 而不是 PulseAudio)。

答案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 上运行。

相关内容