Есть ли способ заставить R звучать / воспроизводить звук в конце скрипта? - PullRequest
126 голосов
/ 29 июля 2010

Когда я запускаю R-скрипты, я делаю что-то еще на другом рабочем столе.Если я не часто проверяю, я никогда не знаю, когда что-то закончено.Есть ли способ вызвать гудок (например, системный гудок) или заставить R воспроизвести звук или уведомить рычание через какой-то код в конце моего сценария?

Ответы [ 16 ]

128 голосов
/ 01 июля 2014

У меня есть пакет (beepr) с единственной целью создания звуков уведомлений в R, который должен работать кроссплатформенно. Запустите следующее, чтобы установить beepr и издать звук:

install.packages("beepr")
library(beepr)
beep()

Больше информации на github: https://github.com/rasmusab/beepr

86 голосов
/ 29 июля 2010
alarm()

Функция тревоги Tha.

54 голосов
/ 11 октября 2013

В MacOSX вы можете позволить компьютеру говорить:

system("say Just finished!")

и вы также можете изменить искусственный голос, который будет говорить:

system("say -v Kathy Just finished!")

Вы можете выбрать любой голос, который доступен на вашем компьютере. На Yosemite вы можете увидеть, какие голоса установлены в Системные настройки -> Диктовка и речь -> Текст в речь .

47 голосов
/ 30 июля 2010

Вы должны получить твит, когда это будет сделано: http://cran.r -project.org / web / packages / twitteR / index.html

32 голосов
/ 29 августа 2012

alarm не работает на моем компьютере с Windows, поэтому я создал функцию, которая на самом деле издает шум.

beep <- function(n = 3){
    for(i in seq(n)){
        system("rundll32 user32.dll,MessageBeep -1")
        Sys.sleep(.5)
    }
}

Это, очевидно, может работать только в Windows, но я не гарантирую, что это будет дажезапустить на произвольном компьютере Windows.Я только протестировал это на своей машине, но я решил опубликовать его на тот случай, если у кого-то возникнет та же проблема с alarm, что и у меня.

28 голосов
/ 30 июля 2010

кошка ('Привет, мир! \ A')

16 голосов
/ 19 августа 2012

Мало того, вы также можете поместить немного эпической музыки с Youtube, когда программа завершит цикл :) (Для Ubuntu / Debian:)

system("xdg-open 'http://www.youtube.com/watch?v=9jK-NcRmVcw'")
11 голосов
/ 21 июня 2015

UPDATE:

В macOS 10.9 (Mavericks) и более поздних версиях вы можете публиковать уведомления, используя простой AppleScript:

theTitle <- "A Title"
theMsg <- "A message here"

cmd <- paste("osascript -e ", "'display notification ", '"', theMsg, '"', ' with title ', '"', theTitle, '"', "'", sep='')
system(cmd)

Это устраняет необходимость установки terminal-notifier, на которую ссылаются ниже.

-

На моем Mac установлено 1011 * Terminal-Notifier для получения уведомлений на рабочем столе из командной строки. Затем вы можете завершить вызов команды system() следующим образом (очевидно, измените путь):

notify <- function(msgString='Message from R', titleString='Message from R', speakIt=FALSE) {
    cmd <- paste('~/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier -message ', '"', msgString, '"  -title "', titleString, '"', sep='')
    system(cmd)

    if (speakIt) {
        system(paste('say', msgString))
    }

}

Вы можете вызвать функцию следующим образом

notify("R is done", "Message from R", speakIt=TRUE)

чтобы получить такое сообщение:

enter image description here

Обновление: включена @ VLC say команда.

11 голосов
/ 27 февраля 2013

Пожалуйста, используйте shell.exec("url"), чтобы открыть клип на YouTube в Windows

9 голосов
/ 02 августа 2016

Как насчет чего-то достаточно независимого от ОС для ОС с графическим интерфейсом и веб-браузерами?Он даже работает на RStudio Server!

browseURL('https://www.youtube.com/watch?v=QH2-TGUlwu4')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...