Suena la alarma cuando termina el código

5 minutos de lectura

avatar de usuario
tigre

Estoy en una situación en la que mi código tarda mucho en ejecutarse y no quiero mirarlo todo el tiempo, pero quiero saber cuándo está listo.

¿Cómo puedo hacer que el código (Python) suene como una “alarma” cuando termine? Estaba contemplando hacer que reproduzca un archivo .wav cuando llegue al final del código…

¿Es esto siquiera una idea factible? Si es así, ¿cómo podría hacerlo?

  • ¿Qué sistema operativo estás usando?

    – Thomas Fenzl

    15 mayo 2013 a las 19:08

  • Ubuntu 12.04 y el código está en python.

    – tigre

    15 mayo 2013 a las 19:09

  • También me interesaría saber cómo hacer esto en Windows.

    – Jared Nielsen

    15 mayo 2013 a las 19:10

  • stackoverflow.com/questions/307305/reproducir-un-sonido-con-python

    – Thomas Fenzl

    15 mayo 2013 a las 19:11

  • Posible duplicado de Reproducir audio con Python Ubuntu bash: askubuntu.com/questions/277215/…

    – Ciro Santilli Путлер Капут 六四事

    28 de julio de 2016 a las 11:53


avatar de usuario
ryan saxe

en ventanas

import winsound
duration = 1000  # milliseconds
freq = 440  # Hz
winsound.Beep(freq, duration)

Donde freq es la frecuencia en Hz y la duración en milisegundos.

En Linux y Mac

import os
duration = 1  # seconds
freq = 440  # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))

Para utilizar este ejemplo, debe instalar sox.

En Debian/Ubuntu/Linux Mint, ejecute esto en su terminal:

sudo apt install sox

En Mac, ejecute esto en su terminal (usando macports):

sudo port install sox

Discurso en Mac

import os
os.system('say "your program has finished"')

Discurso en Linux

import os
os.system('spd-say "your program has finished"')

Necesitas instalar el speech-dispatcher paquete en Ubuntu (o el paquete correspondiente en otras distribuciones):

sudo apt install speech-dispatcher

  • cierto Tienes que descargarlo, te daré el enlace, déjame encontrarlo… Acabo de publicar otro para macs que realmente te hablará, para que te diga cuándo está listo

    – Ryan Saxe

    15 mayo 2013 a las 19:30

  • ¡Gracias! ¿sabes si linux tiene uno que también te hable?

    – tigre

    15 mayo 2013 a las 22:39

  • el mío dice que say no se encuentra, aunque he instalado sox y play funciona. pero he encontrado una alternativa. import os os.system(‘habla “su programa ha terminado”‘)

    – tigre

    17 de mayo de 2013 a las 11:04

  • @CharlieParker, si observa la respuesta completa, la primera opción es solo para usuarios de Windows. Los otros indican cómo en otros entornos, que incluye OSX

    – Ryan Saxe

    7 julio 2016 a las 22:29

  • ¡HASTA que pueda hacer que mi computadora hable usando el paquete os! ¡¡Tan genial!!

    – marty331

    23 de enero de 2019 a las 15:22

avatar de usuario
jose allemon

print('\007')

Reproduce el sonido de la campana en Linux. juega el sonido de error en Windows 10.

  • Esto no parece funcionar a través de ipython/Jupyter

    – Kyle Barron

    15 de noviembre de 2019 a las 22:57

  • no funciona en el código VS ni en los portátiles Jupyter en win10

    – Miguel Tomás

    11 de mayo de 2021 a las 12:19

  • ¡No funciona en mi computadora (Linux Mint 20)!

    – sangorys

    3 ene a las 17:14

avatar de usuario
Saullo GP Castro

Este parece funcionar tanto en Windows como en Linux* (de esta pregunta):

def beep():
    print("\a")

beep()

En Windows, puede poner al final:

import winsound
winsound.Beep(500, 1000)

where 500 is the frequency in Herz
      1000 is the duration in miliseconds

Para trabajar en Linux, es posible que deba hacer lo siguiente (del comentario de QO):

  • en una terminal, escriba ‘cd /etc/modprobe.d’ y luego ‘gksudo gedit blacklist.conf’
  • comente la línea que dice ‘blacklist pcspkr’, luego reinicie
  • compruebe también que las preferencias de la terminal tienen marcada la ‘Timbre de la terminal’.

  • ¡Gracias! solo para agregar, es posible que deba activar el sonido de la campana de la terminal en ubuntu gnome para que funcione.

    – tigre

    15 mayo 2013 a las 19:34

  • @mtigger ¿Podría explicar cómo hacerlo, para que podamos actualizar la respuesta … (o puede actualizar)

    – Saullo GP Castro

    15 mayo 2013 a las 19:45


  • en una terminal, escriba ‘cd /etc/modprobe.d’ y luego ‘gksudo gedit blacklist.conf’. descomente la línea que dice ‘blacklist pcspkr’, luego reinicie. compruebe también que las preferencias de la terminal tienen marcada la ‘Timbre de la terminal’.

    – tigre

    15 mayo 2013 a las 19:59

  • ¿Cómo verificar “que las preferencias de la terminal tienen el ‘Terminal Bell’ marcado” en ubuntu 13?

    – usuario2384994

    6 de diciembre de 2013 a las 0:37

  • “\a” funcionó para mí en el subsistema Ubuntu para Windows, ¡gracias!

    – Ryan

    3 de julio de 2017 a las 3:25

El despachador de voz de ubuntu se puede utilizar:

import subprocess
subprocess.call(['speech-dispatcher'])        #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])

Supongo que desea el timbre estándar del sistema y no quiere preocuparse por las frecuencias y duraciones, etc., solo desea el timbre estándar de Windows.

import winsound
winsound.MessageBeep()

La respuesta de Kuchi no funcionó para mí en OS X Yosemite (10.10.1). encontré el afplay dominio (aquí), al que puede simplemente llamar desde Python. Esto funciona independientemente de si la campana audible de la Terminal está habilitada y sin una biblioteca de terceros.

import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')

¿Por qué usar python en absoluto? Es posible que olvide eliminarlo y registrarlo en un repositorio. Simplemente ejecute su comando python con && y otro comando para ejecutar la alerta.

python myscript.py && 
    notify-send 'Alert' 'Your task is complete' && 
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga

o suelte una función en su .bashrc. Uso apython aquí, pero podría anular ‘python’

function apython() {
    /usr/bin/python $*
    notify-send 'Alert' "python $* is complete"
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}

  • Genial, funciona. también con os.system("paplay sound-alarm.oga")

    – fsevenm

    9 mayo 2020 a las 0:30

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad