আমি কীভাবে আমার পিসি স্পিকারকে বীপ বানাবো?


171

ব্যাশ ব্যবহার করে, আমি কীভাবে পিসি স্পিকারকে বীপ তৈরি করতে পারি?

ভালো কিছু echo 'beepsound' > /dev/pcspkrহবে।



উত্তর:


124

আমি সাধারণত beepঅনেক সিস্টেমে ইনস্টল করা সামান্য ইউটিলিটি ব্যবহার করি । সিস্টেম কণ্ঠ তৈরি করতে এই কমান্ডটি বিভিন্ন পদ্ধতির চেষ্টা করবে।

beepম্যানপেজ থেকে একটি শব্দ তৈরির 3 টি উপায় রয়েছে :

  1. শেল স্ক্রিপ্টে বীপ উত্পাদন করার প্রচলিত পদ্ধতি হ'ল শেল কমান্ডের মাধ্যমে একটি ASCII BEL( \007) অক্ষরকে স্ট্যান্ডার্ড আউটপুট লিখতে হয়

    echo -ne '\007'
    

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

  2. বীপিং শোনার অন্যান্য উপায় আছে। কিছুটা বেশি নির্ভরযোগ্য পদ্ধতি হ'ল /dev/ttyআপনার বিএল চরিত্রটি সেখানে খোলা এবং প্রেরণ করা। এটি I / O পুনঃনির্দেশের বিরুদ্ধে শক্ত, তবে এখনও এমন ক্ষেত্রে ব্যর্থ হয় যেখানে বীজ তৈরি করতে ইচ্ছুক শেল স্ক্রিপ্টটির নিয়ন্ত্রণকারী টার্মিনাল নেই, উদাহরণস্বরূপ, কারণ এটি এক্স উইন্ডো ম্যানেজার থেকে চালিত হয়েছে।

  3. তৃতীয় পন্থাটি হল আপনার এক্স ডিসপ্লেতে সংযোগ স্থাপন এবং এটি একটি বেল কমান্ড প্রেরণ। এটি কোনও ইউনিক্স টার্মিনাল ডিভাইসের উপর নির্ভর করে না, তবে এর জন্য অবশ্যই একটি এক্স ডিসপ্লে প্রয়োজন।

beep এই 3 পদ্ধতি সহজভাবে চেষ্টা করবে।


9
beepকমান্ডের হোমপৃষ্ঠাটি হ'ল: johnah.com/beep উবুন্টু / ডেবিয়ান অন, আপনি এটি ইনস্টল করতে পারেন apt-get install beep
রিকার্ডো মুরি

14
লিনাক্সে, বীপিংয়ের জন্য একটি চতুর্থ ব্যাডাস পদ্ধতি রয়েছে: pcspkrমডিউলটি আনলোড করুন , লোড করুন snd-pcsp, এবং আপনার কাছে এখন একটি আলসা সাউন্ডকার্ড রয়েছে যা আপনার অভ্যন্তরীণ স্পিকারকে প্রকৃতপক্ষে ডিজিটাল শব্দটি খাওয়ানোর জন্য পুরানো-স্কুল কৌশলগুলি ব্যবহার করে। এটি পাইজোইলেক্ট্রিক অভ্যন্তরীণ স্পিকারগুলির সাথে কৃপণ ফলাফল দেয়, তবে শাস্ত্রীয় অভ্যন্তরীণ স্পিকারগুলিতে, মানটি এটির জন্য বেশ ভাল। এইভাবে, আপনি আপনার বীপ শব্দের জন্য আরও সৃজনশীল পেতে পারেন;)
BatchyX

8
@ আইসোমরফিজমস: pcspkrএবং snd-pcspমডিউলগুলি, প্যাকেজ নয়। এগুলি হেরফের করতে modprobe/ modprobe -r/ lsmodব্যবহার করুন। আপনার তথ্যের জন্য, তারা linux-image-somethingপ্যাকেজে রয়েছে, যা ইতিমধ্যে ইনস্টল করা আছে (অন্যথায় আপনার কোনও লিনাক্স কার্নেল নেই)।
ব্যাচইএক্স

3
বীপ সাধারণত
ডিবিয়ানের

4
মিচিড যেমন বলেছিলেন, মডিউলটি যুক্ত করার পরে:, modprobe snd-pcspবীপ এখন কাজ করছে!
Lepe

72

কেবল প্রতিধ্বনিত হয় \aবা \07আমার পক্ষে কাজ করে।

$ echo -e "\a"

এটির জন্য সম্ভবত pcspkrকার্নেল মডিউলটি লোড করা দরকার। আমি কেবল এটি আরএইচইএলে পরীক্ষা করেছি, তাই ওয়াইএমএমভি।

হালনাগাদ

ওয়ারেন মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, এসএসএইচ এর মাধ্যমে দূরবর্তীভাবে লগ ইন করার সময় এটি কাজ করতে পারে না। একটি তাত্ক্ষণিকভাবে কাজটি হ'ল টিটিওয়াই ডিভাইসের যে কোনও একটিতে আউটপুট পুনঃনির্দেশ করা (আদর্শভাবে এটি অব্যবহৃত)। উদাহরণ:

$ echo -en "\a" > /dev/tty5

5
আপনি যদি কোনও এক্স টার্মিনাল ব্যবহার করছেন বা মেশিনে ssh'd করছেন, এটি কেবলমাত্র টার্মিনালটি ফ্ল্যাশ করতে পারে কারণ অনেকগুলি xterm / vt100 টাইপ প্রোগ্রামগুলি বিএইএল অক্ষরগুলির জন্য এটির জন্য কনফিগার করা হয়েছে।
ওয়ারেন ইয়ং

2
এটি বোধগম্য হয় তবে উবুন্টু 12.04 এ এটি আমার পক্ষে কার্যকর হয়নি।
isomorphismes

2
@ আইসোমরফিজমস: এটি কনসোলের জন্য, এক্স 11 টার্মিনালের জন্য নয়। এক্স এর নীচে বিপগুলির জন্য
MestreLion

1
@ আইসোমর্ফিজমস: আমি উবুন্টু ১২.০৪ ব্যবহার করছি, এবং আমার sudo modprobe pcspkrপক্ষে ভিটি-র অধীনে বীপগুলি সক্ষম করার জন্য যথেষ্ট ছিল, হয় printf "\a"বা beepইউটিলিটি দ্বারা।
MestreLion

3
কোনও পদ্ধতিই আমার পক্ষে কাজ করে না। Ubuntu 16.04.1 LTS
ar2015

67

দ্রষ্টব্য: এই সমাধানটি মাদারবোর্ড নয়, স্পিকারের কাছ থেকে বিপগুলি বের করে ।

ALSA স্পিকার-পরীক্ষার সাথে আসে , একটি কমান্ড-লাইন স্পিকার টেস্ট টোন জেনারেটর, যা বীপ তৈরি করতে ব্যবহার করা যেতে পারে:

$ speaker-test -t sine -f 1000 -l 1

দেখুন এই আর্চ লিনাক্স ফোরাম থ্রেড

তবে, বীপের সময়কাল নির্বিচারে হবে, তবে নিম্নলিখিত হিসাবে এটি নিয়ন্ত্রণ করা যেতে পারে:

$ ( speaker-test -t sine -f 1000 )& pid=$! ; sleep 0.1s ; kill -9 $pid

আমরা এটিকে আরও একধাপ এগিয়ে নিয়ে যেতে পারি এবং এই ফাংশনটির সাথে একটি বীপ আউটপুট করতে পারি:

_alarm() {
  ( \speaker-test --frequency $1 --test sine )&
  pid=$!
  \sleep 0.${2}s
  \kill -9 $pid
}

যা ফ্রিকোয়েন্সি এবং সময়কাল আর্গুমেন্ট সহ বলা হয়:

$ _alarm 400 200

এটি মাথায় রেখে, এটির সাথে সহজ সংগীত তৈরি করা সম্ভব speaker-test। দেখুন এই শেল স্ক্রিপ্ট


1
ওয়ান-লাইনার হিসাবে আপনার ফাংশন (এবং Ctrl-C সামঞ্জস্যপূর্ণ):timeout ${2} speaker-test --frequency ${1} --test sine
user569825

1
পিড সংরক্ষণ করার কোনও সত্যিকারের প্রয়োজন speaker-test -t sine -f 1000 -l 1 & sleep .2 && kill -9 $! নেই , ঠিক একই জিনিসটি করে। যাইহোক, @ user569825 এর পদ্ধতিটি দুর্দান্ত।
erm3nda


17

soxইনস্টল করা থাকলে সাউন্ডকার্ড এবং না থাকলে পিসি স্পিকার ব্যবহার করার জন্য :

$ play -q -n synth 0.1 sin 880 || echo -e "\a"

sox বেশিরভাগ ডিস্ট্রোসের জন্য উপলব্ধ।


2
+1 আমি জানতাম না যে নাটকটিতে এই বৈশিষ্ট্যটি রয়েছে। নির্দিষ্ট শর্ত পূরণ হওয়ার পরে আমাকে অবহিত করতে আমি একটি thenব্লকের মধ্যে watchএটি ব্যবহার করে শেষ করেছি । এমনকি আমার হেডফোনগুলি চালিয়ে যেতে দেয়। এটি আমার জন্য খুব দরকারী ছিল।
andyortlieb

বাশ শ নাটক থেকে সম্ভবত প্রয়োজন হবেsudo -u USER play...
ইনটিকা

আমার সিস্টেমে, playব্যবহারকারী হিসাবে পলসৌদিও ব্যবহার করে। আমার ধারণা এটি সিস্টেম কনফিগারেশনের উপর নির্ভর করে।
আলেকজান্ডার 10

13

কিছু ডিস্ট্রোদের এটি অর্জনের জন্য কমান্ড-লাইন ইউটিলিটি রয়েছে। আপনি কী ডিসট্রোতে আছেন তা অনুসন্ধান করতে পারেন বা অনুসন্ধান করতে পারেন (উদাহরণস্বরূপ emerge -s beepভদ্রুতে)।

"উপলব্ধ" ব্যবহারের বাইরে গিয়ে আপনি পার্ল স্ক্রিপ্টও তৈরি করতে পারেন যা বীপকে বের করে দেয়, আপনাকে যা করতে হবে তা হ'ল:

<SomeCodeBefore>
print "\007";
<SomeCodeAfter>  

যদি আপনি 'বীপ' পাওয়া শেষ করেন তবে নিম্নলিখিতগুলি চেষ্টা করে দেখুন:

#! /bin/sh 

beep -f 500 -l 700 
beep -f 480 -l 400 
beep -f 470 -l 250 
beep -f 530 -l 300 -D 100 
beep -f 500 -l 300 -D 100 
beep -f 500 -l 300 
beep -f 400 -l 600 
beep -f 300 -l 500 
beep -f 350 -l 700 
beep -f 250 -l 600

আমি চাই আমার প্রশ্নগুলি ডিস্ট্রো অজানাস্টিক থাকবে, echo -e "\007"পার্লের পরিবর্তে print "\007বাশে কাজ করবে ?
স্টেফান

1
@ স্টেফান - বিপ বেশ 'সার্বজনীন'। তবে আপনি 'ইকো-ই "\ a" "বা' প্রতিধ্বনি" \ 07 "'ব্যবহার করে ডিস্ট্রো অজ্ঞেয় থাকতে পারেন। চিয়ার্স!
ওয়ার্মিনট্রুড

2
printf '\007'পরিবর্তে এটি ব্যবহারে আরও পোর্টেবল হবে echo
ডেনিস উইলিয়ামসন

3

" আপনার পিসির একটি" স্পিকার "থাকলেই বিপ কাজ করে Many অনেক আধুনিক ল্যাপটপ / ছোট ডিভাইসগুলির একটি নেই" " - Tredegar

পরিবর্তে একটি শব্দ বাজানোর চেষ্টা করুন:

$ play xxxxx.wav

আমার পক্ষে কাজ করেছেন, যখন সমস্ত ব্যর্থ হয়েছিল।

তথ্যসূত্র


2

চেষ্টা

প্রতিধ্বনি -n Ctrl+ V Ctrl+G

খারাপ দিকটি হ'ল এটি কেবল তখনই কাজ করবে যখন আউটপুট ডিভাইসটি টার্মিনাল হয়, সুতরাং এটি কোনও ক্রোন কাজের অভ্যন্তরে কাজ করতে পারে না, উদাহরণস্বরূপ। (তবে আপনি যদি রুট হন তবে আপনি /dev/consoleতত্ক্ষণাত বীপিংয়ের জন্য পুনর্নির্দেশ করতে সক্ষম হতে পারেন ))


1

লিনাক্সে, জাতীয় সরঞ্জাম beepপ্রদত্ত শব্দ নির্গত করতে কনসোল ডিভাইসে একটি আইওএসটিএল ব্যবহার করতে পারে। আরও সুনির্দিষ্ট হওয়ার জন্য, আইওসিটিএল beepব্যবহার করবে KIOCSOUND, তবে একটি KDMKTONEআইওসিটিএলও রয়েছে যা শব্দ উত্পন্ন করতে ব্যবহৃত হতে পারে।

আমি এটি বুঝতে পেরে, পূর্ববর্তী একটি শব্দ শুরু করে যা এটি স্পষ্টভাবে বাতিল না হওয়া অবধি স্থায়ী হয়, অন্যদিকেটি পূর্ব নির্ধারিত সময়ের একটি বীপ তৈরি করবে create বিশদটির জন্য console_ioctl(4) ম্যান পৃষ্ঠাটি দেখুন।

সুতরাং আপনি যদি যা beepকরেন তাতে সন্তুষ্ট হন, তবে এই আইওটিটিএলগুলি সরাসরি অ্যাক্সেস করার জন্য আপনি কয়েকটি লাইন কোড লিখতে পারেন। ধরে নিলাম আপনার কাছে সম্পূর্ণ অ্যাক্সেস রয়েছে /dev/console, যার জন্য মূলের সুবিধার জন্য ভাল প্রয়োজন।


-1

একটি টার্মিনালে, Ctrl+ Gএবং তারপরে টিপুনEnter


1
আমার টার্মিনালে (জিনোম-টার্মিনাল) এটি এন্টার ছাড়াই কাজ করে। ঠিক পিসি স্পিকারের পরীক্ষা হিসাবে এটি আমার কাছে দুর্দান্ত দেখাচ্ছে। যদিও এটি স্ক্রিপ্টগুলিতে একেবারেই অকেজো।
প্যালেক

অবাক করা ডাউনভোটস। এটি কিছু পিসির ক্ষেত্রে কাজ করে, যদিও এটি সবসময় কাজ করবে না।
জাজাচ ...

এটি rxvt, urxvt, xterm, lxterm বা lxterminal এ কাজ করে না, আমার টার্মিনালটিতে কমপক্ষে ফ্ল্যাশ করা উচিত নয় যদি এর ভিজ্যুয়াল বেল থাকে?
উইলেম

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