Automatisches Abspielen von sound in IPython notebook
Ich oft lang andauernde Zellen in meinem IPython notebook. Ich möchte das notebook automatisch beep oder sound Abspielen, wenn die Zelle beendet. Gibt es eine Möglichkeit, dies zu tun in iPython notebook, oder vielleicht irgendein Befehl, den ich setzen kann, die am Ende einer Zelle automatisch einen sound Abspielen?
Ich bin mit Chrome, falls das einen Unterschied macht.
- mögliche Duplikate von Sound Abspielen, mit Python
- Sehen Waylon Finn ' s Antwort für eine integrierte Methode für die neueste iPython notebook-Versionen.
- Siehe stackoverflow.com/a/50569680/6646912 für die automatische beep (wenn eine beliebige Zelle führt mehr als angegeben), ohne dass irgendein code am Ende Ihrer Zellen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
TL;DR
Oben auf Ihrem notebook
sound_file
zeigen sollte, zu einer Datei auf Ihrem computer, oder über das internet zugänglich.Dann später, am Ende des lang andauernden Zelle
Diese Methode verwendet die Audio - tag eingebaut, in Neueren Versionen von iPython/Jupyter.
Hinweis: Für Ältere Versionen
Älteren Versionen, ohne die Audio-tag können die folgende Methode verwenden.
Setzen Sie diese in eine Zelle und führen Sie es, bevor Sie wollen, um Ihren sound zu spielen:
Am Ende der Zelle, die Sie wollen, um ein Rauschen auf Abschluss setzen diese:
Wie es funktioniert:
Es liest eine Datei aus dem Dateisystem mit iPython built-in
open
undread
Methoden. Dann codiert diese in base64. Es erstellt dann eine audio-tag mit der IDbeep
und spritzt die base64-Daten in es. Das Letzte Stück der Einrichtung wird ein kleines script-tag, das den sound abspielt.Diese Methode sollte funktionieren in jedem browser, der das HTML5-audio-tag.
Hinweis: wenn Sie lieber nicht in die Anzeige des audio-Steuerelemente in Ihrem notebook, entfernen Sie einfach die
controls
Attribut aus der variable mit dem Namensound_tag
wave = np.sin(2*np.pi*400*np.arange(10000*2)/10000)
und dann:Audio(wave, rate=10000, autoplay=True)
... spielen 400Hz Sinus für 2 Sekunden bei einer sampling-rate von 10000Meine bevorzugte Lösung (keine Notwendigkeit für ein externes Modul) :
Funktioniert unter OS X.
Jedoch DaveP die Bemerkung noch gelten : es ist nicht der browser den Ton, aber der server.
Könnten Sie verwenden ein externes Modul mit python. Versuchen Sie, diese
s.play()
Anruf von Snack Sound Toolkit am Ende der Zelle.Der Snack Sound Toolkit spielen können wav -, au-und mp3-Dateien.
diese Frage ist im Grunde ein Duplikat der:
Spielt einen Ton mit Python.
Den obigen code-snipit wurde von @csexton in Frage.
Hier ist eine andere version (Python-Seite meist) arbeitet gut mit JupyterLab:
Dem Signalton wird automatisch ausgestoßen werden nach jeder code-Ausführung, die dauerte mehr als 5 Sekunden, aber die aufeinanderfolgenden Hinrichtungen werden nicht zusammen gezählt.
Beispiel:
Wenn Sie fügen Sie dann eine andere Zelle
Getestet mit JupyterLab 0.32.1 und Jupyter notebook-5.5.0.
Edit: zur Verringerung der Unordnung ist die gezeigte audio-Player verwende ich folgenden Schnipsel (für Python älter als 3.6, die Sie verwenden müssen
.format()
anstelle des f-strings):und verwenden Sie dann
InvisibleAudio
stattAudio
impost_execute
.display(HTML("<style>audio{display:none}</style>"))
. Es hinterlässt einen etwas größeren blank output-Bereich, als eine Zelle ohne Ausgang, jedoch.Was über die Eingabe der code einmal und haben es arbeiten, die nach Ausführung jeder Zelle, wenn es ausführt, die länger als die angegebene Zeit?
Einfach erstellen und ausführen einer Zelle mit folgender JavaScript-Code (Einstellung der timeout und sound)
Danach hören Sie den "piep" nach jeder code-Ausführung, die dauerte mehr als 5 Sekunden. Zum Beispiel:
Wenn Sie fügen Sie dann eine andere Zelle
Es sei denn, Sie führen mehrere Zellen gleichzeitig:
Getestet mit Jupyter notebook-5.5.0.
Den code erfordern möglicherweise weitere Verbesserungen (fühlen Sie sich frei zu Bearbeiten). Um es auf Google-Colab, braucht man zum laden von jQuery auf Ihrer eigenen.
Scheint nicht zu funktionieren, mit JupyterLab noch.
Zu deaktivieren, verwenden Sie:
Können Sie auch base64-codiert Piepton (siehe diese Antwort und diese gist):
Basierend auf @krassowski Antwort, hier ist meine Lösung für dieses. Der wesentliche Unterschied ist, dass @krassowski ' s läuft nach jedem jeder "long" Zell-Ausführung (wo man definieren, was "lange" bedeutet); ich lieber explizit sagen, wenn ich möchte, dass der sound gespielt, so habe ich verpackt diese in eine Magische (gist hier und unten kopiert).
Lobende Erwähnung.
Ich kam auf der Suche nach dieser bestimmten Antwort mehrere Male, konnte aber nicht finden Sie es hier.
Benutze ich: