कोड खत्म होने पर ध्वनि अलार्म


143

मैं ऐसी स्थिति में हूं, जहां मेरे कोड को चलाने में बहुत लंबा समय लगता है और मैं हर समय इसे घूरना नहीं चाहता, लेकिन यह जानना चाहता हूं कि यह कब किया जाता है।

जब यह किया जाता है तो मैं ध्वनि (अलार्म) कोड को कैसे बना सकता हूं? मैं इसे एक .wav फ़ाइल खेलने पर विचार कर रहा था जब यह कोड के अंत तक पहुँच जाता है ...

क्या यह भी एक व्यवहार्य विचार है? यदि हां, तो मैं यह कैसे कर सकता था?


आप कौन से ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं?
थॉमस फेनज़ल

Ubuntu 12.04, और कोड अजगर में है।
mtigger

4
मुझे यह जानने में दिलचस्पी होगी कि विंडोज में यह कैसे करना है, साथ ही साथ।
जेरेड नीलसन


1
पायथन उबंटू बैश के साथ प्ले ऑडियो की संभावित डुप्लिकेट : askubuntu.com/questions/277215/…
Ciro Santilli Sant audio audio

जवाबों:


235

विंडोज पर

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

जहां फ्रीज़ Hz में आवृत्ति है और अवधि मिलीसेकंड में है।

लिनक्स और मैक पर

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

इस उदाहरण का उपयोग करने के लिए, आपको इंस्टॉल करना होगा sox

डेबियन / उबंटू / लिनक्स मिंट पर, इसे अपने टर्मिनल में चलाएं:

sudo apt install sox

Mac पर, इसे अपने टर्मिनल (macports का उपयोग करके) में चलाएं:

sudo port install sox

मैक पर भाषण

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

लिनक्स पर भाषण

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

आपको speech-dispatcherउबंटू में पैकेज (या अन्य वितरण पर संबंधित पैकेज) स्थापित करने की आवश्यकता है :

sudo apt install speech-dispatcher

1
दाईं ओर आपको इसे डाउनलोड करना है, मैं आपको लिंक दूंगा, मुझे इसे ढूंढने दें ... मैंने सिर्फ मैक के लिए एक और पोस्ट किया है जो वास्तव में आपसे बात करेगा, इसलिए यह आपको बता सकता है कि यह कब किया गया है
रयान सैक्स

धन्यवाद! क्या आपको पता है कि अगर linux में कोई है जो आपसे बात करेगा?
mtigger

2
मेरा कहना है कि कहते हैं कि पाया नहीं है, भले ही मैं sox स्थापित है और काम करता है खेलते हैं। लेकिन मुझे एक विकल्प मिल गया है। आयात os os.system ('जासूसी' आपका कार्यक्रम समाप्त हो गया है '')
mtigger

वाइनबाउंड नहीं मिला है। क्या यह OS X के लिए उपलब्ध नहीं है?
चार्ली पार्कर

1
@CharlieParker, यदि आप पूर्ण उत्तर को देखते हैं, तो पहला विकल्प केवल विंडोज़ उपयोगकर्ताओं के लिए है। अन्य लोग बताते हैं कि अन्य वातावरणों पर कैसे, जिसमें OSX
Ryan Saxe


26

यह विंडोज और लिनक्स दोनों पर काम करने लगता है * ( इस प्रश्न से ):

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

beep()

विंडोज में, अंत में रख सकते हैं:

import winsound
winsound.Beep(500, 1000)

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

लिनक्स पर काम करने के लिए, आपको निम्नलिखित करने की आवश्यकता हो सकती है (QO की टिप्पणी से):

  • एक टर्मिनल में, 'cd /etc/modprobe.d' टाइप करें और फिर 'gksudo gedit blacklist.conf'
  • 'ब्लैकलिस्ट pcspkr' कहने वाली लाइन पर टिप्पणी करें, फिर रिबूट करें
  • यह भी जाँच लें कि टर्मिनल वरीयताओं में 'टर्मिनल बेल' की जाँच है।

1
धन्यवाद! बस जोड़ने के लिए, यह काम करने के लिए ubuntu सूक्ति में टर्मिनल घंटी ध्वनि चालू करने की आवश्यकता हो सकती है।
mtigger

@mtigger क्या आप यह बता सकते हैं कि यह कैसे करना है, ताकि हम उत्तर को अपडेट कर सकें ... (या आप अपडेट कर सकते हैं)
Saullo GP Castro

1
एक टर्मिनल में, 'cd /etc/modprobe.d' टाइप करें और फिर 'gksudo gedit blacklist.conf'। 'ब्लैकलिस्ट pcspkr' कहने वाली लाइन को अनफॉलो करें, फिर रिबूट करें। यह भी जाँच लें कि टर्मिनल वरीयताओं में 'टर्मिनल बेल' की जाँच है।
mtigger

ubuntu 13 में "टर्मिनल बेल को चेक करने के लिए टर्मिनल प्राथमिकताएँ" की जाँच कैसे करें?
user2384994

"a" ने मेरे लिए विंडोज के लिए Ubuntu सबसिस्टम पर काम किया, धन्यवाद !!
रयान

17

ubuntu भाषण डिस्पैचर का उपयोग किया जा सकता है:

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

लेकिन, प्रक्रिया शुरू होने पर खेलना शुरू करना।
cengizkrbck

इसका अभिप्राय व्यवहार से है, आप ध्वनि चाहते हैं जब प्रक्रिया पूरी हो जाए
ईशान खरे

आप -wतर्क जोड़ सकते हैं कि spd-say खत्म करते हुए प्रतीक्षा करने के लिए तर्क जोड़ सकते हैं
ruX

8

मैं मान रहा हूं कि आप मानक प्रणाली की घंटी चाहते हैं, और आवृत्तियों और अवधि आदि के साथ खुद को चिंता नहीं करना चाहते हैं, आप बस मानक विंडोज़ घंटी चाहते हैं।

import winsound
winsound.MessageBeep()

8

कुची का जवाब मेरे लिए OS X Yosemite (10.10.1) पर काम नहीं किया। मुझे afplayकमांड ( यहां ) मिली , जिसे आप केवल पायथन से कॉल कर सकते हैं। यह परवाह किए बिना काम करता है कि क्या टर्मिनल श्रव्य घंटी सक्षम है और तीसरे पक्ष के पुस्तकालय के बिना।

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

6

देखें: पायथन साउंड ("बेल")
इससे मुझे तब मदद मिली जब मैं ऐसा ही करना चाहता था।
सभी क्रेडिट gbc पर जाते हैं

उद्धरण:

आपने कोशिश की है :

import sys
sys.stdout.write('\a')
sys.stdout.flush()

यह मेरे लिए यहाँ मैक ओएस 10.5 पर काम करता है

वास्तव में, मुझे लगता है कि आपका मूल प्रयास थोड़ा संशोधन के साथ भी काम करता है:

print('\a')

(आपको केवल चरित्र अनुक्रम के आसपास एकल उद्धरण की आवश्यकता है)।


6

अजगर का उपयोग क्यों करें? आप इसे निकालना और एक भंडार में जांचना भूल सकते हैं। चेतावनी देने के लिए बस अपने python कमांड को && और दूसरे कमांड को चलाने के लिए चलाएं।

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

या अपने .bashrc में एक समारोह ड्रॉप। मैं यहां एपिथॉन का उपयोग करता हूं लेकिन आप 'अजगर' को ओवरराइड कर सकते हैं

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

महान, यह काम करता है। साथ मेंos.system("paplay sound-alarm.oga")
fsevenm


2
import subprocess

subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])

2
आपको इस कोड के लिए कुछ टिप्पणी या अन्य स्पष्टीकरण जोड़ना चाहिए कि यह कैसे काम करता है और यह प्रश्न का उत्तर क्यों देता है।
skrrgwasme
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.