Saya menginstal pico2wave SVOX dan membuat skrip. Sekarang ketika saya masuk:
speech "Hello world"
Mesin teks-ke-suara komputer mengatakan dengan keras "Halo dunia". Selanjutnya, saya menggunakan .bashrc
variabel yang PROMPT_COMMAND
didefinisikan sebagai:
PROMPT_COMMAND="speech 'Command executed.'"
Jadi mesin text-to-voice yang bagus mengumumkan saya keras bahwa perintah dieksekusi, sebelum mengembalikan prompt di terminal.
Namun, ini menjadi membosankan setelah beberapa saat dan saya pikir akan sangat keren untuk mengakhiri setiap perintah di terminal dengan komputer berbicara baris teks yang berbeda (pikirkan autopilot dari Starship Enterprise).
Jadi saya membuat variabel array .bashrc, dengan pesan yang berbeda:
array[0]="Shields at 90%"
array[1]="Engaging proton overdrive"
array[2]="Autopilot disengaged"
array[3]="Targetting solution available"
array[4]="Alert. Incoming missile."
array[5]="Deploying countermeasures."
array[6]="Firing torpedoes."
array[7]="Engaging auto-cannon."
array[8]="Severe damage on deck 17. Sealing off."
array[9]="Deploying repair droids to deck 17."
Yang saya inginkan, adalah bahwa setiap kali saya menjalankan perintah di terminal, variabel yang PROMPT_COMMAND
akan diperbarui dan membaca baris acak yang berbeda dalam array.
Saya kira saya perlu loop, tetapi saya tidak tahu bagaimana membuatnya.
Saya akan sangat berterima kasih atas bantuannya. Terima kasih.
sumber
-l=de-DE
bahasa lokal Anda seperti-l=en-US
.speech
dapat dieksekusi? Apakah itu alias untukespeak
?Jawaban:
Buat skrip dan simpan di suatu tempat yang berisi baris Anda dan logika untuk memilih garis acak dari array Anda dan memanggil
speech
perintah di baris itu:Kemudian di
.bashrc
atau.profile
atur AndaPROMPT_COMMAND
:Cukup ganti
speech
denganecho
untuk mendapatkan pesan, bukan suara.sumber
${array[$RANDOM % ${#array[@]}]}
harus dengan tanda kutip ganda?set -x
untuk melihat apa yang saya bicarakan :)Kemudian Edit Tutorial:
Berkat jawaban Ravexina di atas, sekarang masalahnya terpecahkan dan solusinya bekerja dengan fantastis. Saya akan memberikan petunjuk langkah demi langkah di bawah ini, untuk orang lain yang tertarik untuk membuatnya bekerja di Ubuntu 18.04
1. Instal paket SVOX pico2wave:
2. Buat skrip pidato
dan letakkan konten ini di dalamnya, masukkan pengguna yang benar di jalur:
Simpan dan keluar.
3. Buat skrip shell_speech.sh seperti yang ditunjukkan oleh Ravexina di atas:
Simpan dan keluar.
4. Jadikan skrip dapat dieksekusi dan tambahkan direktori mereka ke PATH sehingga dapat dipanggil dari mana saja:
5. Ubah .bashrc
tambahkan baris berikut:
Simpan dan tutup
Catatan: Anda bisa menambahkan sebanyak mungkin baris baru di array
~/scripts/bin/shell_speech
sumber
PATH
, Anda tidak perlu memasukkanbash
dalam AndaPROMPT_COMMAND
dan saya akan menggunakan tanda kutip tunggal jika Anda menambahkan hal-hal lain nanti yang perlu menunda eksekusi:PROMPT_COMMAND='shell_speech'
/bin/bash
daripada sederhanabash
... (praktik yang baik kalau-kalau ada orang yang membuat bash lain di jalan Anda sebelum/bin
...). Saya bahkan harus menyarankan Anda file temp temporer di/tmp
direktori sebagai gantinyatest.wav
di rumah Anda ... ps> coba lihat keberuntungan .bash
merupakan cara untuk mendapatkan lebih banyak. Tautan, skrip, tulis izin pada direktori terbuka, yang dibagikan ... Selain itu - Anda mungkin melewatkannya - skrip dapat bertahan hingga tujuan pertama atau pemiliknya ... dan Anda (atau orang lain) dapat menggunakannya setelah cukup waktu sehingga Anda tidak ingat semua perintah yang tertulis di dalamnya (kami lakukan untuk itu), dalam kondisi yang berbeda. Untuk menempatkan\bin\bash
dengan jalur eksplisit adalah praktik yang baik. Untuk menghindari melakukannya ... sebuah risiko.