it-swarm-id.com

Bagaimana cara membuat bip speaker pc saya

Menggunakan bash, bagaimana saya bisa membuat bip speaker pc?

Sesuatu seperti echo 'beepsound' > /dev/pcspkr akan menyenangkan.

185
Stefan

Saya biasanya menggunakan utilitas kecil beep diinstal pada banyak sistem. Perintah ini akan mencoba berbagai pendekatan untuk membuat suara sistem.

Ada 3 cara membuat suara dari halaman _ beep:

  1. Metode tradisional untuk menghasilkan bunyi bip dalam skrip Shell adalah dengan menulis ASCII BEL (\007) karakter ke output standar, melalui perintah Shell seperti

    echo -ne '\007'
    

    Ini hanya berfungsi jika keluaran standar panggilan Shell saat ini diarahkan ke perangkat terminal; jika tidak, bunyi bip tidak akan menghasilkan suara dan bahkan dapat menyebabkan kerusakan yang tidak diinginkan pada file apa pun yang diarahkan ke output.

  2. Ada cara lain untuk menimbulkan bunyi bip. Metode yang sedikit lebih andal adalah membuka /dev/tty dan kirim karakter BEL Anda di sana. Ini kuat terhadap pengalihan I/O, tetapi masih gagal dalam kasus di mana skrip Shell yang ingin menghasilkan bunyi bip tidak memiliki terminal pengendali, misalnya karena dijalankan dari manajer window X.

  3. Pendekatan ketiga adalah menyambungkan ke tampilan X Anda dan mengirimkannya sebuah perintah bel. Ini tidak tergantung pada perangkat terminal Unix, tetapi (tentu saja) memerlukan tampilan X.

beep hanya akan mencoba 3 metode ini.

133
echox

Cukup gema \a atau \07 bekerja untuk saya.

$ echo -e "\a"

Ini mungkin membutuhkan modul kernel pcspkr untuk dimuat. Saya hanya menguji ini di RHEL, jadi YMMV.

MEMPERBARUI

Seperti yang ditunjukkan Warren dalam komentar, ini mungkin tidak berfungsi ketika login jarak jauh melalui SSH. Solusi cepat adalah mengarahkan ulang output ke perangkat TTY mana saja (idealnya yang tidak digunakan). Misalnya.:

$ echo -en "\a" > /dev/tty5
78
Shawn Chin

CATATAN: Solusi ini mengeluarkan bunyi bip dari speaker , bukan motherboard .

ALSA hadir dengan speaker-test , generator nada uji speaker command-line, yang dapat digunakan untuk menghasilkan bunyi bip:

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

Lihat tas forum Arch Linux ini .

Namun, durasi bip akan berubah-ubah, tetapi dapat dikontrol sebagai berikut:

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

Kita dapat mengambilnya selangkah lebih maju dan mengeluarkan bunyi bip dengan fungsi ini:

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

yang disebut dengan argumen frekuensi dan durasi:

$ _alarm 400 200

Dengan pemikiran ini, dimungkinkan untuk membuat musik sederhana dengan speaker-test. Lihat skrip Shell ini .

76
Ryne Everett
tput bel

karena terminfo mendefinisikan bel sebagai

           Variable                       Cap-               TCap                  Description
            String                        name               Code

   bell                                   bel                bl                audible signal
                                                                               (bell) (P)
32
Winston Smith

Untuk menggunakan kartu suara jika sox diinstal dan speaker PC jika tidak:

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

sox tersedia untuk sebagian besar distro.

19
Alexander

Beberapa distro memiliki utilitas command-line untuk mencapai ini. Mungkin Anda bisa memberi tahu kami apa distro Anda, atau mencari (mis. emerge -s beep dalam gentoo).

Melampaui utilitas "tersedia", Anda juga bisa membuat skrip Perl yang mengeluarkan bunyi bip, yang perlu Anda lakukan adalah memasukkan:

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

Jika Anda akhirnya mendapatkan 'bip', cobalah yang berikut ini:

#! /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
13
wormintrude

" Bunyi bip hanya berfungsi jika PC Anda memiliki" speaker ". Banyak laptop modern/perangkat kecil tidak memilikinya." - tredegar .

Coba putar suara sebagai gantinya:

$ play xxxxx.wav

Bekerja untuk saya, ketika semuanya gagal.

Referensi

4
Elliptical view

Mencoba

gema -n Ctrl+VCtrl+G

Kelemahannya adalah ini hanya akan berfungsi ketika perangkat output adalah terminal, jadi mungkin tidak berfungsi di dalam cron job, misalnya. (Tetapi jika Anda root, Anda mungkin dapat mengarahkan ulang ke /dev/console untuk bunyi bip segera.)

2
codehead

Di Linux, alat seperti beep dapat menggunakan ioctl pada perangkat konsol untuk memancarkan suara yang diberikan. Untuk lebih spesifik, beep akan menggunakan KIOCSOUND ioctl, tetapi ada juga KDMKTONE ioctl yang dapat digunakan untuk menghasilkan suara.

Seperti yang saya pahami, yang pertama memulai suara yang berlangsung sampai dibatalkan secara eksplisit, sementara yang kedua akan membuat bunyi bip dari durasi yang ditentukan sebelumnya. Lihat halaman manual console_ioctl (4) untuk detailnya.

Jadi, jika Anda tidak puas dengan apa yang dilakukan beep, Anda dapat menulis beberapa baris kode untuk mengakses ioctls ini secara langsung. Dengan asumsi Anda memiliki akses penuh ke /dev/console, Yang mungkin memerlukan hak akses root.

2
MvG

Di terminal, tekan Ctrl+G lalu Enter

0
Hitesh Chechani