SSH является протоколом для безопасной коммуникации по незащищенной сети. Это допускает вплотную шифрование всей коммуникации, таким образом, что это не может (осуществимо) быть прервано и decrytped.
ssh утилита является реализацией протокола. SFTP является подсистемой ssh, который использует протокол для безопасного пароля и передачи файлов.
su не использует ssh протокол.
Ubuntu использует аудиосистему PulseAudio. Это идет paplay
управляйте для проигрывания звукового файла. Подход, который Вы нашли на Wiki Ubuntu, должен работать, но необходимо использовать paplay
(или некоторая другая эквивалентная программа), а не теперь устаревшие искусства.
Вот некоторый код, адаптированный от Wiki 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.
OpenWrite["!paplay"]
сOpenWrite["!pacat",BinaryFormat -> True]
. Кроме того, Вы получаете нормальный вывод графических данных при добавлении a#1
в конец Вашего$SoundDisplayFunction
. Наконец, я обновил свой ответ для дальнейшего обсуждения OSS (который Mathematica хочет использовать) по сравнению с ALSA/PA (та Ubuntu использование). – Simon 08.07.2011, 16:07