Sesi FIFO dosyasına nasıl yönlendirebilirim?


3

Kullanıcı ile etkileşimde bulunmak için FIFO dosyalarını kullanan bir program var. arecordProgramın FIFO dosyalarından birinin çıkışını yönlendiren bir sesli arama yapılabilir :

arecord -r 48000 -c 1 -f S16_LE > call_in

Programın FIFO dosyalarından birinin çıktısını aşağıdakilere yönlendirerek sesli arama yanıtlanabilir aplay:

aplay -r 48000 -c 1 -f S16_LE - < call_out

Arama yapmak için kullanılan ilk komut yerine bir ses dosyası nasıl kullanılabilir? Diyelim ki bu call_indosyaya "sound.wav" çalmak istiyorum , nasıl yapılabilir?


1
WAV formatının toplam dosya boyutuna sahip bir başlık içerdiğine dikkat edin, bu nedenle bu format akışa veya borulamaya uygun değildir (her iki taraf da bunu dikkate almayı kabul etmediği sürece, ki arecordbu - kapanmadan başlığı doldurmaya çalışacaktır, ve arayış başarısız olur). Bu yüzden kullanın -t raw(o zaman parametreleri belirlemelisiniz) veya -t au(Güneş sesi formatı).
dirkt

@dirkt Hey, öneri için teşekkürler. Gibi bir komut kullanmayı denedim aplay -c 1 -f S16_LE -t au sound.wav > call_in, ama çalışmanın sonu buydu ffmpeg -i sound.wav -ar 48000 -f s16le -acodec pcm_s16le pipe:1 > call_in. Yardımınız için teşekkürler.
Bland Şirketi,

Aa, sound.wavbelli ki wav dosyası ve değil aubu işe böylece ... sen gerekecek, biçim hem kayıt ve aynı biçimde oynarlar. Kullanımı ffmpegbu şekilde ham biçimi kullanarak aynıdır. Ama eğer işe yararsa, işe yarıyor ...
dirkt

Yanıtlar:


1

Eğer arecordgiriş ses kartınızsa, şunu öneriyorum:aplay sound.wav & arecord call_in

aplaymesajını çalmalı. Bir &sonraki komutun arecordderhal yürütülmesine izin verir , ki bu aplayses kartınıza ne gönderdiğini kaydetmeye başlamalıdır .

Aslında, arecord call_in & aplay sound.wavmuhtemelen daha iyi olurdu, bu yüzden mesaj çalmadan önce kaydettiğinizden emin olabilirsiniz.


0

Çıktısının arecordişlevsel olarak wav dosyasının içeriği gibi olduğunu varsayarsak (yani, aynı medya biçimindedirler), şunları yapabilirsiniz:

cat sound.wav > call_in
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.