পাইথন: একটি বীপ শব্দ করা হচ্ছে


104

আমি আমাকে একটি বীপিং শব্দ দেওয়ার জন্য প্রোগ্রামটি পাওয়ার চেষ্টা করছি। আমি একটি উইন্ডোজ মেশিনে আছি আমি http://docs.python.org/library/winsound.html দেখেছি

তবে আমি কীভাবে বারকোড স্ক্যানার দিয়ে এটি প্রোগ্রাম করতে পারি তা নিশ্চিত নয়।

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

ser = serial.Serial()
ser.baudrate = 9600

#for windows
ser.port = 2 #for COM3

ser.open()
ser.write('hello')
ser.close()

আপডেট: যেহেতু আমি আমার সহকর্মীদের বিপ দিয়ে বিরক্ত করছি। আমি কি এটি হেডফোনগুলির জন্য অডিও জ্যাকের মাধ্যমে আসতে পারি?


4
আপনি কি বারকোড স্ক্যানারটি শব্দ করতে চান বা এটি উইন্ডোজ মেশিনটি সংযুক্ত আছে?
শেথেরন

উইন্ডোজ মেশিন। আমি মনে করি বারকোড স্ক্যানার নিজে থেকে এটি করবে
মার্ক ব্রিগাম

11
পুনরায় "আপডেট": হ্যাঁ, এটি একটি সুপরিচিত সত্য যে
বীপগুলি

4
@ চার্লিপার্কার কারণ উইন্ডোজের জন্য জয়ের শব্দ is পরিবর্তে "\ a" মুদ্রণ করুন।
noɥʇʎԀʎzɐɹƆ

উত্তর:


158

উইন্ডোজে, আপনি যদি কম্পিউটারটিকে কেবল একটি বীপ শব্দ তৈরি করতে চান:

import winsound
frequency = 2500  # Set Frequency To 2500 Hertz
duration = 1000  # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)

winsound.Beep()আপনি যেখানেই থাকুন না হুইসেল ঘটতে করতে চান ব্যবহার করা যাবে।


13
এটি একটি ঝরঝরে:def annoy(): for i in range(1, 10): winsound.Beep(i * 100, 200)
স্কুরমেডেল

9
বা def sos(): for i in range(0, 3): winsound.Beep(2000, 100) for i in range(0, 3): winsound.Beep(2000, 400) for i in range(0, 3): winsound.Beep(2000, 100)। আমার সম্ভবত এখন ফিরে যেতে হবে: ডি
স্কুরমেডেল

4
উইন্ডোজ উইনসাউন্ডে। বাইপগুলি উইন্ডোজ সাউন্ড জুড়ে বহন করা হয়।
জাকব বোয়ার

আমি ম্যাক এ আছি, পাইপ রেপোতে এটি খুঁজে পাচ্ছি না?
ভোল্টিল

আকর্ষণীয়, এটি আমার অ্যানাকোন্ডা পরিবেশে বিদ্যমান নয় ... এটি কি অদ্ভুত?
চার্লি পার্কার

131

এটি করার জন্য ক্রস-প্ল্যাটফর্মের উপায়টি হল print('\a')। এটি ASCII বেল চরিত্রটিকে স্টাডাউটে প্রেরণ করবে এবং আশাকরি একটি বীপ তৈরি করবে ('সতর্কতার জন্য')। নোট করুন যে অনেক আধুনিক টার্মিনাল এমুলেটর বেল চরিত্রগুলি উপেক্ষা করার বিকল্প সরবরাহ করে।

আপনি যেহেতু উইন্ডোজে রয়েছেন, আপনি শুনে খুশি হবেন যে উইন্ডোজটির নিজস্ব (নিজেকে ব্রেস করুন) বিপ এপিআই রয়েছে , যা আপনাকে স্বেচ্ছাসেবী দৈর্ঘ্য এবং পিচের বিপগুলি প্রেরণ করতে দেয়। মনে রাখবেন যে এটি একটি উইন্ডোজ-কেবল সমাধান, সুতরাং আপনি সম্ভবত print('\a')হার্টজ এবং মিলিসেকেন্ডগুলির যত্ন না নিলে আপনার পছন্দ করা উচিত ।

উইপসাউন্ড মডিউলটির মাধ্যমে বিপ এপিআই অ্যাক্সেস করা হয়েছে : http://docs.python.org/library/winsound.html


4
যদিও তিনি উইন্ডোজের জন্য বিশেষভাবে জিজ্ঞাসা করেছিলেন, তবে আমি মনে করি এটি হ'ল এটিই সর্বোত্তম সমাধান around পাশাপাশি প্রচুর অডিও এপিআই রয়েছে
শেথেরন

4
সত্যই, আমি গুরুতর প্রোগ্রামিংয়ের প্রচেষ্টায় পুরোপুরি পিসি-স্পিকার বীপস খেলা এড়াতে চাই। যদি তিনি সত্যই উইন্ডোজটিতে থাকেন তবে তার পরিবর্তে সম্ভবত সিস্টেম থিমের ডিফল্ট "সতর্কতা" সিগন্যালটি খেলার চেষ্টা করা উচিত। কোনও ভাগ্যের সাথেই, জিইআইআই প্যাকেজটি তিনি যে ব্যবহার করছেন তা দিয়ে সেই সংকেতটি অ্যাক্সেসযোগ্য।
jforberg

4
আপনি যদি কনসোল অ্যাপ্লিকেশনে মুদ্রণ ব্যবহার করেন তবে প্রতিবার আপনি বীপ করে একটি নতুন লাইন প্রতিরোধ করতে end = "" যুক্ত করা বিবেচনা করুন।
টনি

4
@ জফারবার্গ এর জন্য এপিআইটি উইনসাউন্ড M মেসেজবিপ যা এমবি_আইসোনএস্টেরিস্ক, এমবি_আইসনেক্সটেমেশন, এমবি_আইসোনহ্যান্ড, এমবি_আইকিউএনকিউইশন এবং এমবি_ওকে নিতে পারে।
পিটার উড

4
আপনি যদি পাইথন 3 ব্যবহার করছেন তবে বন্ধনী ব্যবহার করতে ভুলবেন না বা আপনি একটি সিনট্যাক্স ত্রুটি পাবেন। মুদ্রণ ('\ এ') ব্যবহার করুন
জোড়রোডেলেনা

28

লিনাক্স।

$ apt-get install beep

$ python
>>> os.system("beep -f 555 -l 460")

বা

$ beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460

12
দুটি কারণে বঞ্চিত: প্রথমত, জিএনইউ / লিনাক্স! = দেবিয়ান এবং এপট-গেট সর্বজনীন নয়; দ্বিতীয়ত, আপনি ওএস.সিস্টেম ব্যবহার করা উচিত নয়, পরিবর্তে সাবপ্রসেসি মডিউলটি ব্যবহার করুন।
বেন

4
একটি লিনাক্স ব্যবহারকারী যখন একটি দীর্ঘ কোড শেষ হয়ে যায় তখন একটি সহজ এবং সস্তা বীপ পেতে চেষ্টা করার জন্য, এটি ছিল সবচেয়ে সহজ সমাধান। আমি বিশেষত ছোট্ট জিঙ্গলটি পছন্দ করতাম! নোট করুন যে আপনাকে "sudo modprobe pcspkr" কল করতে হবে এবং এই অপশনটি কার্যকর হওয়ার আগেই বীপ ইনস্টল করতে হবে, Askubuntu.com
জন

6
os.systemভাল, বিশেষত একটি হার্ডকোডযুক্ত মান সহ, সবাই ওয়েবসভার লিখছেন না।
সিজেড

টাইপো -f 1047-l, হওয়া উচিত -f 1047 -l, স্থান নিখোঁজ
বার্তেকব্রাক

@ বেন ওল্ড প্রশ্ন, তবে এটিকে কমিয়ে আনা বেশ শক্ত বলে মনে হচ্ছে। প্রশ্নটি এমন কোনও অঞ্চলের সাথে সম্পর্কিত যার কোনও ক্রস-প্ল্যাটফর্ম সমাধান নেই কারণ আমি এটি বুঝতে পারি। ১৪০ টি পছন্দ সহ গ্রহণযোগ্য উত্তরটি উইন্ডোজ-নির্দিষ্ট। এবং আপনি বৈধ মডিউল "খারাপ" অনুশীলন কেন তা ব্যাখ্যা করবেন না।
ভূগোলিক

17

আমি একই জন্য কিন্তু লিনাক্স শেল জন্য অনুসন্ধান ছিল।

বিষয়টি আমাকে একটি উত্তরে নিয়ে এসেছিল, - ধন্যবাদ-

সম্ভবত আরও অজগর পদ্ধতি:

import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)

মন্তব্য :

  • ঘুমের মান (এখানে ০.২) আপনার ডিফল্ট বীপ শব্দের দৈর্ঘ্য (সেকেন্ড) এর উপর নির্ভর করে
  • আমি os.systemবরং subprocess.Popenসরলতার জন্য ব্যবহার করা বেছে নিয়েছি (এটি খারাপ হতে পারে)
  • '-n' এর জন্য echoআর কোনও প্রদর্শন নেই
  • গত ';' ফলাফল পরবর্তী sleepপাঠ্যক্রমের জন্য প্রয়োজনীয় (* x)
  • এক্স শর্তে এসএসএসের মাধ্যমে পরীক্ষাও করা হয়েছে

4
পাইথনের উভয় echo( print) সমতুল্য রয়েছে এবং sleepতাই বাহ্যিক কলগুলির মধ্য দিয়ে যাওয়া আসলে অজগর নয়, বিশেষত যখন তারা (অ-বহনযোগ্য) ইউনিক্স কল হয়।
এরিক হে লেবিগোট

(3) এর অর্থ কী?
বম্বপাউ

11

একটি উইন্ডোজ উত্তর, এবং একটি ডেবিয়ান উত্তর আছে, তাই এখানে একটি ম্যাক উত্তর :

এটি ধরে নিয়েছে যে আপনি এখানে একটি কাস্টমাইজযোগ্য সতর্কতা শব্দ করার জন্য দ্রুত উপায় খুঁজছেন এবং উইন্ডোজটিতে যে পাইজুইলেক্ট্রিক বীপ পাবেন তা বিশেষভাবে নয়:

os.system( "say beep" )

দাবি অস্বীকার: আপনি যদি কেউ নিজের বীপ কোডটি হ্যাক করার বিষয়ে উদ্বিগ্ন থাকেন তবে আপনি মডিউলটিতে os.systemকল দিয়ে প্রতিস্থাপন করতে পারেন subprocess

দেখুন: ম্যাক ওএস এক্স 10.6 এ কীভাবে হার্ডওয়্যার বীপ শব্দ করা যায়


7

ক্রস প্ল্যাটফর্ম উপায়:

import time
import sys
for i in range(1,6):
    sys.stdout.write('\r\a{i}'.format(i=i))
    sys.stdout.flush()
    time.sleep(1)
sys.stdout.write('\n')

4
এর একমাত্র গুরুত্বপূর্ণ অংশটি হলsys.stdout.write('\a')
jstrieb

4
@ জাস্ট্রিবিব - এটি একটি ছোট স্ট্যান্ডেলোন প্রোগ্রাম। সম্পূর্ণতার মধ্যেই এর গুরুত্ব।
FooBar167

4
এটি শীর্ষস্থানীয় উত্তর হওয়া উচিত
দ্বি

3

আমি সে উদ্দেশ্যে একটি প্যাকেজ তৈরি করেছি ।

আপনি এটি এর মতো ব্যবহার করতে পারেন:

from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)

এটা নির্ভর করে সক্স এবং শুধুমাত্র python3 সমর্থন করে।


4
পাইপ 3 ইনস্টল পাইবাইপ ব্যবহার করে দেখুন।
কিড

4
শুধু আপনি যে sox ইনস্টল করতে হবে তা জানতে। রান: ব্রিউ ইনস্টল সোেক্স
জ্যাম এম হার্নান্দেজ প্র।

উইন্ডোজ পাই 3.8 এ কাজ করে না
জেমি ইসাড্ডি রুড

3

যে pygameকোনও প্ল্যাটফর্মে ব্যবহার করা হচ্ছে

ব্যবহারের সুবিধা pygameহ'ল এটি যে কোনও ওএস প্ল্যাটফর্মে কাজ করা যায়। উদাহরণের নীচে কোডটি যদিও জিএনইউ / লিনাক্সের জন্য

এখানে বিস্তারিত হিসাবে বর্ণিত হিসাবে প্রথমে pygameমডিউলটি ইনস্টল করুনpython3

$ sudo pip3 install pygame

pygameমডিউল বাজাতে পারেন .wavএবং .oggযেকোনো ফাইল অবস্থান থেকে ফাইল। এখানে একটি উদাহরণ:

#!/usr/bin/env python3
import pygame
pygame.mixer.init()
sound = pygame.mixer.Sound('/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga')
sound.play()

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