কোড শেষ হয়ে গেলে শব্দ অ্যালার্ম


143

আমি এমন পরিস্থিতিতে আছি যেখানে আমার কোডটি চালাতে বেশ দীর্ঘ সময় নেয় এবং আমি সর্বদা এটি ঘটাতে চাই না তবে কখন হয়ে যায় তা জানতে চাই।

(পাইথন) কোড সাজানোর শব্দটি যখন করা হয় তখন এটি একটি "অ্যালার্ম" তৈরি করতে পারে? আমি কোডটির শেষের দিকে পৌঁছে যাওয়ার সময় এটিকে একটি ডাব্লু ফাইলটি চালানোর বিষয়ে ভাবছিলাম ...

এটি কি একটি বাস্তব ধারণা? যদি তা হয় তবে আমি কীভাবে এটি করতে পারি?


আপনি কোন অপারেটিং সিস্টেম ব্যবহার করছেন?
থমাস ফেনজেল

উবুন্টু 12.04, এবং কোডটি অজগরে রয়েছে।
mtigger

4
উইন্ডোজে এটি কীভাবে করা যায় তা জানতে আগ্রহী হব।
জ্যারেড নীলসেন


উত্তর:


235

উইন্ডোজ এ

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

যেখানে ফ্রিক্যুটি হার্টজ হার্টের ফ্রিকোয়েন্সি এবং সময়কালটি মিলি সেকেন্ডে।

লিনাক্স এবং ম্যাক এ

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

এই উদাহরণটি ব্যবহার করার জন্য আপনাকে অবশ্যই ইনস্টল করতে হবে sox

ডেবিয়ান / উবুন্টু / লিনাক্স মিন্টে, আপনার টার্মিনালে এটি চালান:

sudo apt install sox

ম্যাক এ, এটি আপনার টার্মিনালে চালান (ম্যাকপোর্টগুলি ব্যবহার করে):

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
ডান আপনার এটি ডাউনলোড করতে হবে, আমি আপনাকে লিঙ্কটি দেব, এটি আমাকে খুঁজে বার করুন ... আমি সবেমাত্র ম্যাক্সের জন্য আরও একটি পোস্ট করেছি যা আপনার সাথে প্রকৃতপক্ষে কথা বলবে, যাতে এটি শেষ হয়ে গেলে আপনাকে বলতে পারে
রায়ান স্যাক্সে

ধন্যবাদ! আপনি কি লিনাক্সের সাথে কথা বলবেন তা জানতে পেরেছিলেন?
mtigger

2
আমার বলে যে বলাটি পাওয়া যায় না, যদিও আমি sox ইনস্টল করেছি এবং কাজগুলি করি। তবে আমি একটি বিকল্প খুঁজে পেয়েছি। ওএস ওসিস্টেম আমদানি করুন ('স্পেস্ক "আপনার প্রোগ্রামটি শেষ হয়েছে"')
এমটিগগার

উইনসাউন্ড খুঁজে পাওয়া যায় নি। এটি কি ওএস এক্সের জন্য উপলব্ধ নয়?
চার্লি পার্কার 21

1
@ চর্লিপারপার্কার, আপনি যদি পুরো উত্তরটি দেখুন তবে প্রথম বিকল্পটি কেবল উইন্ডোজ ব্যবহারকারীদের জন্য। অন্যরা অন্য পরিবেশে কীভাবে করবেন তা জানায়, যার মধ্যে ওএসএক্স অন্তর্ভুক্ত রয়েছে
রায়ান স্যাক্স


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

লিনাক্সে কাজ করতে, আপনাকে নিম্নলিখিতগুলি করতে হবে (কিউওর মন্তব্য থেকে):

  • একটি টার্মিনালে, 'সিডি /etc/modprobe.d' টাইপ করুন তারপরে 'gksudo gedit blacklist.conf' লিখুন
  • 'ব্ল্যাকলিস্ট পিসিএসপিকিআর' বলছে এমন লাইনে মন্তব্য করুন, তারপরে পুনরায় বুট করুন
  • টার্মিনাল পছন্দগুলিতে 'টার্মিনাল বেল' পরীক্ষা করা আছে কিনা তাও পরীক্ষা করে দেখুন।

1
ধন্যবাদ! কেবল যুক্ত করার জন্য, এটি কাজ করার জন্য উবুন্টু জিনোমে টার্মিনাল বেল সাউন্ডটি চালু করতে পারে।
mtigger

@ মিটিগার আপনি কীভাবে এটি করবেন তা দয়া করে ব্যাখ্যা করতে পারেন, যাতে আমরা উত্তরটি আপডেট করতে পারি ... (বা আপনি আপডেট করতে পারেন)
সৌলো জিপি কাস্ত্রো

1
একটি টার্মিনালে, 'সিডি /etc/modprobe.d' টাইপ করুন তারপরে 'gksudo gedit blacklist.conf' লিখুন। 'ব্ল্যাকলিস্ট পিসিএসপি-কেআর' বলছে এমন লাইনটি আপত্তিহীন করুন, তারপরে পুনরায় বুট করুন। টার্মিনাল পছন্দগুলিতে 'টার্মিনাল বেল' চেক করা আছে তাও পরীক্ষা করে দেখুন।
mtigger

ওবুন্টু 13 এ টার্মিনাল পছন্দগুলিতে 'টার্মিনাল বেল' রয়েছে কিনা তা পরীক্ষা করবেন?
ব্যবহারকারী 2384994

"\ a" উইন্ডোজের উবুন্টু সাবসিস্টেমটিতে আমার জন্য কাজ করেছে, ধন্যবাদ !!
রায়ান

17

উবুন্টু স্পিচ প্রেরক ব্যবহার করা যেতে পারে:

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

তবে, প্রক্রিয়া শেষ হলে খেলতে শুরু করুন।
কেনগিজক্রব্যাক

উদ্দেশ্যমূলক আচরণটি এটাই, প্রক্রিয়া শেষ হওয়ার পরে আপনি শব্দটি চান
hanশান খারে

আপনি -w
এসপিডি

8

আমি ধরে নিচ্ছি আপনি প্রমিত সিস্টেমের ঘণ্টা চান, এবং ফ্রিকোয়েন্সি এবং সময়সীমা ইত্যাদি নিয়ে নিজেকে উদ্বেগ করতে চান না, আপনি কেবল স্ট্যান্ডার্ড উইন্ডোজ বেলটি চান want

import winsound
winsound.MessageBeep()

8

ওএস এক্স ইয়োসেমাইটে (10.10.1) কুচিটির উত্তর আমার পক্ষে কার্যকর হয়নি for আমি afplayকমান্ডটি পেয়েছি ( এখানে ), যা আপনি পাইথন থেকে কল করতে পারেন। টার্মিনাল শ্রবণযোগ্য বেলটি সক্ষম এবং তৃতীয় পক্ষের লাইব্রেরি ছাড়াই এটি নির্বিশেষে এটি কাজ করে।

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

6

দেখুন: পাইথন সাউন্ড ("বেল")
যখন আমি একই কাজ করতে চেয়েছিলাম তখন এটি আমাকে সাহায্য করেছিল।
সমস্ত ক্রেডিট জিবিসি যান

উদ্ধৃতি:

আপনি চেষ্টা করেছেন:

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

এটি আমার জন্য ম্যাক ওএস 10.5-এ কাজ করে

প্রকৃতপক্ষে, আমি মনে করি যে আপনার আসল প্রয়াসটি সামান্য পরিবর্তনের সাথেও কাজ করে:

print('\a')

(আপনার কেবল চরিত্রের ক্রমের চারপাশে একক উদ্ধৃতি প্রয়োজন)।


6

অজগর কেন আদৌ ব্যবহার করবেন? আপনি এটিকে সরাতে ভুলে যেতে পারেন এবং এটি একটি সংগ্রহস্থলে যাচাই করে নিতে পারেন। সতর্কতা করার জন্য চালানোর জন্য অ্যান্ড অ্যান্ড অ্যান্ড অন্য কমান্ডের সাহায্যে আপনার অজগর কমান্ডটি চালান।

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.