Mathematica не звучит под Ubuntu 11.04

После ожидания нескольких дней для моей лицензии у меня появилась возможность установить Wolfram Mathematica 8 дома. Однако ни функции Play ни Speak ничего не делают, поскольку кажется, что Mathematica не может производить звук без объяснения причин. Может кто-нибудь есть идея, как я могу это исправить?

Ubuntu использует звуковую систему PulseAudio . Он поставляется с командой 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[]; 

См. Также Нет звука в Mathematica 8.0.1 под Linux , в котором сообщается, что аналогичный подход работал в Mathematica 8 (с ALSA, а не PulseAudio).

Проблема в том, что эта версия 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, чтобы перезагрузить ядро.

У меня такая же проблема. После перехода на Mathematica 10, генераторы звука работают в Linux.