• Ses çoğaltma kalitesi. Ses kodlaması. Müziği başka bir formata dönüştürmeden önce, onu WAV'a "açmalısınız"

    Ses bilgisi. Ses, hava, su veya diğer ortamlarda yayılan, yoğunluğu ve frekansı sürekli değişen bir dalgadır.

    Bir kişi, çeşitli hacim ve tonlarda ses şeklinde işitme yardımıyla ses dalgalarını (hava titreşimleri) algılar. Ses dalgasının yoğunluğu ne kadar yüksek olursa, ses o kadar yüksek, dalganın frekansı o kadar yüksek, sesin tonu o kadar yüksek olur (Şekil 1.1).

    Pirinç. 1.1. Sesin yüksekliğinin ve perdesinin ses dalgasının yoğunluğuna ve frekansına bağımlılığı

    İnsan kulağı, sesi saniyede 20 titreşim (düşük ses) ile saniyede 20.000 titreşim (yüksek ses) arasında değişen frekanslarda algılar.

    Bir kişi, sesi, maksimum yoğunluğun minimumdan 1014 kat daha fazla (yüz milyar kez) olduğu çok çeşitli yoğunluklarda algılayabilir. Sesin yüksekliğini ölçmek için özel bir birim olan "desibel" (dbl) kullanılır (Tablo 5.1). Ses hacminin 10 dB azalması veya artması, ses yoğunluğunun 10 kat azalmasına veya artmasına karşılık gelir.

    Tablo 5.1. Ses seviyesi
    Desibel cinsinden Ses Yüksekliği
    İnsan kulağının alt hassasiyet sınırı 0
    yaprak hışırtısı 10
    konuşma 60
    araba kornası 90
    Jet motoru 120
    Ağrı eşiği 140
    Sesin zaman örneklemesi. Bir bilgisayarın sesi işleyebilmesi için, sürekli bir ses sinyalinin zaman örneklemesi kullanılarak ayrı dijital forma dönüştürülmesi gerekir. Sürekli bir ses dalgası, ayrı küçük zaman bölümlerine bölünür, bu tür her bölüm için belirli bir ses yoğunluğu değeri ayarlanır.

    Böylece, ses yüksekliğinin süre A(t) üzerindeki sürekli bağımlılığının yerini, ayrı bir ses yüksekliği seviyeleri dizisi alır. Grafikte bu, düz bir eğriyi bir dizi "adım" ile değiştirmek gibi görünür (Şekil 1.2).

    Pirinç. 1.2. Geçici Ses Örnekleme

    Örnekleme frekansı. Ses kartına bağlı bir mikrofon, analog sesi kaydetmek ve dijital forma dönüştürmek için kullanılır. Alınan dijital sesin kalitesi, birim zamandaki ses seviyesi ölçüm sayısına, yani örnekleme frekansına bağlıdır. 1 saniyede ne kadar çok ölçüm yapılırsa (örnekleme frekansı o kadar yüksek), dijital ses sinyalinin "merdiveni" diyalog sinyalinin eğrisini o kadar doğru tekrarlar.

    Ses örnekleme hızı, ses hacminin bir saniyedeki ölçüm sayısıdır.

    Ses örnekleme hızı, saniyede 8.000 ila 48.000 ses hacmi ölçümü arasında değişebilir.

    Ses kodlama derinliği. Her "adım", ses seviyesi seviyesinin belirli bir değerine atanır. Ses yüksekliği seviyeleri, kodlanması için ses kodlama derinliği olarak adlandırılan belirli miktarda I bilgisinin gerekli olduğu bir dizi olası durum N olarak düşünülebilir.

    Ses kodlama derinliği, ayrık dijital ses yüksekliği düzeylerini kodlamak için gereken bilgi miktarıdır.

    Kodlama derinliği biliniyorsa, dijital ses düzeyi sayısı N = 2I formülü kullanılarak hesaplanabilir. Ses kodlama derinliğinin 16 bit olmasına izin verin, ardından ses yüksekliği seviyelerinin sayısı:

    N = 2I = 216 = 65536.

    Kodlama işlemi sırasında, her bir ses seviyesi seviyesine kendi 16 bitlik ikili kodu atanır, en düşük ses seviyesi 0000000000000000 ve en yüksek - 1111111111111111 koduna karşılık gelir.

    Sayısallaştırılmış sesin kalitesi. Sesin frekansı ve örnekleme derinliği ne kadar yüksek olursa, sayısallaştırılmış sesin kalitesi o kadar iyi olacaktır. Bir telefon bağlantısının kalitesine karşılık gelen en düşük sayısallaştırılmış ses kalitesi, saniyede 8000 kez örnekleme hızında, 8 bitlik örnekleme derinliğinde ve bir ses parçasının kaydedilmesinde ("mono" mod) elde edilir. Bir ses CD'sinin kalitesine karşılık gelen en yüksek sayısallaştırılmış ses kalitesi, saniyede 48.000 kez örnekleme oranı, 16 bit örnekleme derinliği ve iki ses parçasının kaydedilmesi (stereo modu) ile elde edilir.

    Dijital sesin kalitesi ne kadar yüksekse, ses dosyasının bilgi hacminin de o kadar yüksek olduğu unutulmamalıdır. Ortalama bir ses kalitesiyle (16 bit, saniyede 24.000 ölçüm) 1 saniyelik ses süresine sahip bir dijital stereo ses dosyasının bilgi hacmini tahmin edebilirsiniz. Bunu yapmak için, kodlama derinliği 1 saniyedeki ölçüm sayısıyla ve 2 ile çarpılmalıdır (stereo ses):

    16 bit × 24.000 × 2 = 768.000 bit = 96.000 bayt = 93,75 KB.

    ses editörleri Ses editörleri, yalnızca ses kaydetmenize ve çalmanıza değil, aynı zamanda düzenlemenize de olanak tanır. Sayısallaştırılmış ses, ses editörlerinde görsel bir biçimde sunulur, böylece ses parçasının kopyalanması, taşınması ve bölümlerinin silinmesi işlemleri fare kullanılarak kolayca gerçekleştirilebilir. Ayrıca, ses parçalarını üst üste bindirebilir (sesleri karıştırabilir) ve çeşitli akustik efektler (yankı, ters oynatma, vb.) uygulayabilirsiniz.

    Ses genliği ve frekansı sürekli değişen bir dalgadır. Genlik ne kadar büyükse, bir kişi için o kadar yüksek, frekans o kadar yüksek, ton o kadar yüksek olur.

    dijital ses genliğinin ayrı sayısal değerleri ile temsil edilen bir analog ses sinyalidir.

    Merkezde ses kodlama bilgisayarların kullanılmasıyla birlikte, hava titreşimlerini elektrik akımı titreşimlerine dönüştürme ve ardından bir analog elektrik sinyalinin ayrıklaştırma işlemi yatar.

    Ses bilgilerinin kodlanması ve çalınması, özel programlar (ses kayıt editörleri) yardımıyla gerçekleştirilir.

    Kodlanmış sesin oynatma kalitesi, örnekleme frekansına ve çözünürlüğüne bağlıdır.

    Ses dijitalleştirme - (veya analogdan dijitale dönüştürme) - bir analog ses sinyalini dijital forma dönüştürmek için, sinyal genliğinin belirli bir zaman adımıyla ölçülmesi ve ardından elde edilen değerlerin sayısal biçimde kaydedilmesiyle gerçekleştirilen bir teknoloji.

    Ses dijitalleştirme iki süreç içerir:

      ayrıklaştırma işlemi (zamana göre sinyal örneklemesinin uygulanması);

      niceleme işlemi genliğe göre.

    Zaman Ayrıklaştırma Süreci - belirli bir zaman adımı ile dönüştürülen sinyal değerlerinin elde edilmesi işlemi - örnekleme adımı .

    Bir saniyede gerçekleştirilen sinyal gücünün ölçüm sayısına denir. aynı oran veya örnekleme oranı, veya aynı oran(İngilizce "genişletme" - "örnek" ten).

    Örnekleme adımı ne kadar küçük olursa, örnekleme frekansı o kadar yüksek olur ve alacağımız sinyalin daha doğru gösterimi sağlanır.

    İşlem genlik kuantizasyonu - sinyal genliğinin gerçek değerlerini, bir miktar doğrulukla yaklaşık değerlerle değiştirme işlemi.

    Niceleme– seviye ayrıklaştırma.

    16 bitlik nicelemeden kaynaklanan niceleme hatalarının dinleyici tarafından neredeyse algılanamaz olduğu varsayılır.

    2 N olası seviyenin her birine denir niceleme seviyesi ve en yakın iki niceleme seviyesi arasındaki mesafeye denir. kuantizasyon adımı.

    N sayısı denir niceleme bit derinliği ve genlik değerlerinin yuvarlanması sonucunda elde edilen sayılar - geri sayım veya örnekler(İngilizce "örnek" - "ölçüm" den).

    16 bitlik nicelemeden kaynaklanan niceleme hataları, dinleyici tarafından neredeyse algılanamaz.

    Sesin sayısallaştırılması - sonuç:

    Artıları: herhangi bir sesi kodlayabilirsiniz (ses, ıslık, hışırtı, ... dahil)

    Eksiler: bilgi kaybı, büyük miktarda dosya var

    Ses kalitesini etkileyen ana parametreler:

    1. Bit derinliği- boyut (ADC ve DAC ile kodlanan / kodu çözülen bilgi bitlerinin sayısı).

    2. Numune oranı- Hertz cinsinden ölçülen, örneklemesi (ADC) sırasında zaman içinde sürekli bir sinyalin örneklerini alma sıklığı.

    3. Gürültü- iletilen sinyalin istenmeyen faz ve/veya frekans rasgele sapmaları

    Ses dosyası formatları

        dalga(dalga formu ses biçim), genellikle sıkıştırma olmadan (boyut!)

        Milletvekili3 (MPEG-1 Ses katman 3 , insan algısını dikkate alan sıkıştırma)

        AAC (Gelişmiş Ses Kodlaması, 48 kanal, sıkıştırma)

        WMA (Windows Medya Sesi, ses akışı, sıkıştırma)

        OGG (ogg Vorbis, açık biçim, sıkıştırma)

    Bitler, hertz, şekil titremesi...

    Bu kavramların arkasında ne gizli? Audio compact disc (CD Audio) standardı geliştirilirken değerler alınmıştır. 44 kHz, 16 biraz ve 2 kanal (yani stereo). Neden tam olarak bu kadar çok? Bu seçimin nedeni nedir ve ayrıca neden bu değerleri diyelim ki 96 kHz ve 24 hatta 32 bit'e çıkarmak için girişimlerde bulunulmaktadır ...

    Önce örnekleme çözünürlüğüyle, yani bit derinliğiyle ilgilenelim. Öyle oluyor ki 16, 24 ve 32 sayıları arasında seçim yapmanız gerekiyor. Ara değerler elbette ses açısından daha uygun olur, ancak dijital teknolojide kullanım için çok tatsız olur.

    Bu parametre neden sorumludur? Özetle - dinamik aralık için. Eşzamanlı olarak yeniden üretilen seslerin aralığı, çözünürlüğün izin verdiği maksimum genlikten (0 desibel) en küçük genliğe kadar, örneğin 16 bit ses için yaklaşık eksi 93 desibeldir. Garip bir şekilde, bu, fonogramın gürültü seviyesiyle güçlü bir şekilde ilişkilidir. Prensip olarak, 16 bit ses için -120 dB gücünde sinyaller iletmek oldukça mümkündür, ancak bu sinyallerin aşağıdaki gibi temel bir kavram nedeniyle pratikte uygulanması zor olacaktır. örnekleme gürültüsü. Gerçek şu ki, dijital değerleri alırken, gerçek analog değeri mümkün olan en yakın dijital değere yuvarlayarak her zaman hatalar yapıyoruz. Mümkün olan en küçük hata sıfırdır, ancak maksimum hata son rakamın yarısıdır (bit, bundan sonra LSB terimi MB olarak kısaltılacaktır). Bu hata bize sözde örnekleme gürültüsünü verir - sayısallaştırılmış sinyal ile orijinal arasındaki rastgele bir tutarsızlık. Bu gürültü sabittir ve en önemsiz basamağın yarısına eşit bir maksimum genliğe sahiptir. Bu, dijital bir sinyale karıştırılmış rastgele değerler olarak düşünülebilir. Bazen buna yuvarlama veya niceleme gürültüsü denir (bu daha doğru bir addır, çünkü genlik kodlamasına niceleme denir ve örnekleme, sürekli bir sinyali ayrık (darbeli) bir diziye - yaklaşık durum) dönüştürme işlemidir.

    Bitlerle ölçülen sinyal gücünün ne anlama geldiği üzerinde daha ayrıntılı olarak duralım. Dijital ses işlemede en güçlü sinyal genellikle 0 dB olarak alınır ve bu, 1'e ayarlanan tüm bitlere karşılık gelir. En önemli bit (bundan sonra SB olarak anılacaktır) sıfıra ayarlanırsa, ortaya çıkan dijital değer, 6 desibellik bir seviye kaybına karşılık gelen yarı yarıya olacaktır (10 * log (2) = 6). Böylece birimleri en yüksekten en düşüğe sıfırlayarak, sinyal seviyesini altı desibel azaltacağız. Minimum sinyal seviyesinin (biri en önemsiz basamakta ve diğer tüm basamaklar sıfırdır) (N-1) * 6 desibel olduğu açıktır; burada N, örneğin bit derinliğidir. 16 bit için en zayıf sinyalin seviyesini alıyoruz - 90 desibel.

    "LSB'nin yarısı" dediğimizde, -90/2'yi kastetmiyoruz, bir sonraki bitin yarısı - yani 3 desibel daha düşük, eksi 93 desibel.

    Sayısallaştırma çözünürlüğü seçimine dönüyoruz. Daha önce bahsedildiği gibi, sayısallaştırma, en önemsiz basamağın yarısı düzeyinde parazit ortaya çıkarır; bu, bir kaydın 16 bitte sayısallaştırıldığı anlamına gelir. sürekli gürültü yapmak eksi 93 desibelde. Sinyalleri daha da sessiz iletebilir, ancak gürültü hala -93 dB'de kalır. Bu temelde, dijital sesin dinamik aralığı belirlenir - sinyal-gürültü oranının gürültü / sinyale dönüştüğü yerde (kullanışlı sinyalden daha fazla gürültü vardır), bu aralığın alt sınırı bulunur. Böylece, ana sayısallaştırma kriteri - ne kadar gürültü geri yüklenen bir sinyali karşılayabilir miyiz? Bu sorunun cevabı kısmen orijinal kayıtta ne kadar gürültü olduğuna bağlıdır. Önemli bir sonuç - gürültü seviyesi eksi 80 desibel olan bir şeyi dijitalleştirirsek - onu 16 bitten fazla sayısallaştırmak için kesinlikle hiçbir neden yoktur, çünkü bir yandan -93 dB gürültü zaten çok büyük (nispeten) -80 dB gürültüye çok az katkıda bulunur ve diğer yandan - -80 dB'den daha sessiz gürültü / sinyal zaten fonogramın kendisinde başlar ve böyle bir sinyali sayısallaştırmak ve iletmek gerekli değildir.

    Teorik olarak, sayısallaştırma çözünürlüğü seçmek için tek kriter budur. Daha fazla biz katkıda bulunma kesinlikle deforme ve yanlışlık yoktur. Uygulama, garip bir şekilde, teoriyi neredeyse tamamen tekrarlıyor. Ses CD'leri için 16 bit çözünürlüğü seçen insanlara rehberlik eden şey buydu. Gürültü eksi 93 desibel, oldukça iyi bir durumdur ve bu, neredeyse tamamen bizim algımızın koşullarına karşılık gelir: ağrı eşiği (140 desibel) ile şehirdeki normal gürültü arka planı (30-50 desibel) arasındaki fark sadece yaklaşık yüz desibeldir ve acı veren bir ses seviyesinde insanların müzik dinlemediğini düşünürsek - bu da aralığı daha da daraltır - odanın ve hatta ekipmanın gerçek seslerinin nicelemeden çok daha güçlü olduğu ortaya çıkar gürültü. Dijital bir kayıtta eksi 90 desibelin altındaki bir seviyeyi duyabilirsek, niceleme gürültüsünü duyar ve algılarız, aksi takdirde bu sesin dijital mi yoksa canlı mı olduğunu asla belirleyemeyiz. Dinamik aralık açısından başka hiçbir fark yoktur. Ancak prensipte, bir kişi 120 desibel aralığında anlamlı bir şekilde duyabilir ve 16 bitin baş edemediği görünen tüm aralığı korumak güzel olurdu.

    Ancak bu sadece ilk bakışta: adı verilen özel bir tekniğin yardımıyla. şekilli titreme, örnekleme gürültüsünün frekans spektrumunu değiştirebilir, neredeyse tamamen 7-15 kHz'den daha yüksek bir bölgeye taşıyabilirsiniz. Kalan frekans aralığında ek bir dinamik aralık için frekans çözünürlüğünü değiştiriyoruz (sessiz yüksek frekansları yeniden üretmeyi reddediyoruz). İşitmemizin özellikleriyle birlikte - atılan yüksek frekans bölgesine duyarlılığımız, ana bölgeden (2-4 kHz) onlarca dB daha düşüktür - bu, nispeten gürültüsüz yararlı sinyalleri -93 dB'den 10-20 dB daha sessiz iletmeyi mümkün kılar - bu nedenle, bir kişi için 16 bit sesin dinamik aralığı yaklaşık 110 desibeldir. Ve genel olarak - aynı zamanda, bir kişi az önce duyulan yüksek bir sesten 110 desibel daha sessiz sesleri duyamaz. Göz gibi kulak da çevredeki gerçekliğin ses seviyesine uyum sağlar, bu nedenle eşzamanlı işitme aralığımız nispeten küçüktür - yaklaşık 80 desibel. Frekans konularını tartıştıktan sonra dithring hakkında daha ayrıntılı olarak konuşalım.

    CD'ler için örnekleme hızı 44100 Hz'dir. 22.05 kHz'e kadar tüm frekansların yeniden üretildiğine dair (Kotelnikov-Nyquist teoreminin yanlış anlaşılmasına dayanan) bir görüş var, ancak bu tamamen doğru değil. Ancak sayısallaştırılmış sinyalde 22.05 kHz'in üzerinde frekans olmadığını kesin olarak söyleyebiliriz. Sayısallaştırılmış sesin yeniden üretiminin gerçek resmi her zaman şunlara bağlıdır: özel teknik ve her zaman istediğimiz kadar mükemmel ve teori ile tutarlı değildir. Her şey belirli DAC'ye (dijital diziden ses sinyali almaktan sorumlu dijital-analog dönüştürücü) bağlıdır.

    Önce ne almak istediğimizi bulalım. Orta yaşlı bir kişi (oldukça genç) 10 Hz'den 20 kHz'e kadar sesleri hissedebilir, duymak anlamlıdır - 30 Hz'den 16 kHz'e. Üstteki ve alttaki sesler algılanır, ancak akustik bir duyum oluşturmaz. 16 kHz'in üzerindeki sesler rahatsız edici hoş olmayan bir faktör olarak hissedilir - kafadaki baskı, ağrı, özellikle yüksek sesler o kadar keskin bir rahatsızlık getirir ki odadan çıkmak istersiniz. Hoş olmayan hisler o kadar güçlü ki, güvenlik cihazlarının eylemi buna dayanıyor - birkaç dakikalık çok yüksek frekanslı bir ses herkesi çıldırtacak ve böyle bir ortamda herhangi bir şey çalmak kesinlikle imkansız hale geliyor. Yeterli genliğe sahip 30 - 40 Hz'in altındaki sesler nesnelerden (hoparlörlerden) gelen titreşim olarak algılanır. Aksine, öyle bile söylenebilirdi - sadece bir titreşim. Bir kişi akustik olarak bu kadar düşük seslerin uzamsal konumunu neredeyse belirlemez, bu nedenle diğer duyu organları zaten kullanılıyor - dokunsal, bu tür sesleri vücudumuzla hissediyoruz.

    Yüksek frekanslarda, en azından kesin olarak her şey biraz daha kötü daha zor. DAC ve ADC'deki iyileştirmelerin ve komplikasyonların neredeyse tamamı, tam olarak yüksek frekansların daha güvenilir bir şekilde iletilmesini amaçlamaktadır. "Yüksek" ile, örnekleme frekansıyla karşılaştırılabilir frekansları kastediyoruz - yani 44,1 kHz durumunda, bu 7-10 kHz ve daha yüksektir.

    44.1 kHz örnekleme hızıyla dijitalleştirilmiş, 14 kHz frekanslı sinüzoidal bir sinyal düşünün. Giriş sinüzoidinin bir periyodu için yaklaşık üç nokta (sayım) vardır ve orijinal frekansı bir sinüzoid şeklinde geri yüklemek için biraz hayal gücü göstermeniz gerekir. Örneklerden dalga biçimini geri yükleme işlemi DAC'de de gerçekleşir, bu kurtarma filtresi tarafından yapılır. Ve nispeten düşük frekanslar neredeyse hazır sinüzoidler ise, o zaman yüksek frekansların restorasyonunun şekli ve buna bağlı olarak kalitesi tamamen DAC restorasyon sisteminin vicdanına bağlıdır.Bu nedenle, sinyal frekansı örnekleme frekansının bir saniyesine ne kadar yakınsa, sinyal şeklini geri yüklemek o kadar zor olur.

    Yüksek frekansları üretirken ana sorun budur. Ancak sorun göründüğü kadar kötü değil. Tüm modern DAC'ler, dijital olarak birkaç kat daha yüksek bir örnekleme hızına geri yükleme ve ardından onu artan bir frekansta bir analog sinyale dönüştürmeyi içeren çok oranlı teknolojiyi kullanır. Böylece, yüksek frekansları geri yükleme sorunu, çok yüksek kalitede olabilen dijital filtrelerin omuzlarına kaydırılır. O kadar yüksek kalite ki, pahalı cihazlar söz konusu olduğunda sorun tamamen kaldırıldı - 19-20 kHz'e kadar bozulmamış frekans reprodüksiyonu sağlar. Yeniden örnekleme, çok pahalı olmayan cihazlarda da kullanılır, bu nedenle prensipte bu sorun da çözülmüş sayılabilir. 30 - 60 $ (ses kartları) bölgesindeki cihazlar veya 600 $ 'a kadar olan müzik merkezleri, genellikle DAC'de bu ses kartlarına benzer, 10 kHz'e kadar, tolere edilebilir şekilde 14 - 15'e kadar ve bir şekilde geri kalanı mükemmel şekilde üretir. Bu epeyceçoğu gerçek müzik uygulaması için yeterlidir ve eğer birisi daha fazla kaliteye ihtiyaç duyarsa - bunu profesyonel kalitede cihazlarda bulacaktır, ki bunlar çok daha pahalı değildir - sadece akıllıca yapılmıştır.

    Taklit etmeye geri dönelim, dinamik aralığı 16 bitin üzerine nasıl faydalı bir şekilde çıkarabileceğimizi görelim.

    Titreşim fikri, sinyale karışmaktır gürültü. Kulağa tuhaf gelse de, gürültüyü ve rahatsız edici niceleme etkilerini azaltmak için, eklemek senin sesin Bir örnek ele alalım - CoolEdit'in 32 bitte çalışma yeteneğini kullanalım. 32 bit, 16 bitten 65 bin kat daha doğrudur, yani bizim durumumuzda 32 bit analog orijinal olarak kabul edilebilir ve onu 16 bit'e dönüştürmek sayısallaştırmadır. Orijinal 32 bit sesteki en yüksek ses seviyesi eksi 110 desibele karşılık gelsin. Bu, duyulabilir en zayıf sesin eksi 90 desibele karşılık geldiği 16 bitlik sesin dinamik aralığından biraz daha sessizdir. Bu nedenle, verileri basitçe 16 bit'e yuvarlarsak, tam bir dijital sessizlik elde ederiz.

    Sinyale eksi 90 desibel seviyesinde (yani, geniş bant ve tüm frekans bandında tekdüze) "beyaz" gürültü ekleyelim, yaklaşık olarak niceleme gürültüsü düzeyine karşılık gelir. Şimdi, bu sinyal ve "beyaz" gürültü karışımını 16 bite dönüştürürsek (yalnızca tamsayı değerler mümkündür - 0, 1, -1, ...), o zaman sinyalin bir kısmının kaldığı ortaya çıkıyor. Orijinal sinyalin daha yüksek bir seviyeye sahip olduğu yerde, daha düşük olanın sıfır olduğu daha fazla birlik vardır.

    Yukarıdaki yöntemin deneysel olarak doğrulanması için Cool Edit ses düzenleyicisini (veya 32 bit formatı destekleyen başka herhangi birini) kullanabilirsiniz. Ne olduğunu duymak için sinyali 14 bit (78 dB) yükseltmelisiniz.

    Sonuç, eksi 110 desibel olan orijinal sinyali içeren gürültülü 16 bit sestir. Prensip olarak, bu, genellikle neredeyse kendiliğinden ortaya çıkan dinamik aralığı genişletmenin standart yoludur - her yerde yeterince gürültü vardır. Bununla birlikte, bu kendi başına oldukça anlamsızdır - örnekleme gürültüsünün seviyesi aynı seviyede kalır ve gürültüden daha zayıf bir sinyal iletmek mantık açısından çok net değildir ...

    Daha karmaşık bir yol - şekilli titreme, çok sessiz seslerde hala yüksek frekansları duymadığımız için, gürültünün ana gücünün bu frekanslara yönlendirilmesi gerektiği anlamına gelirken, daha yüksek bir seviyedeki gürültüyü bile kullanabilirsiniz - en az 4 basamaklı bir seviye kullanacağım (16 bitlik bir sinyalde iki bit). Ortaya çıkan 32 bitlik sinyal ve gürültü karışımını 16 bitlik bir sinyale dönüştürüyoruz, yüksek frekansları (gerçekte bir kişi tarafından kulak tarafından algılanmayan) filtreliyoruz ve sonucu değerlendirebilmek için sinyal seviyesini yükseltiyoruz.

    Bu zaten oldukça iyi (son derece düşük bir ses seviyesi için) ses iletimi, gürültü, eksi 110 desibel başlangıç ​​​​seviyesiyle yaklaşık olarak sesin kendisine eşittir! önemli not: biz kabarık en önemsiz bitin yarısından (-93 dB) en önemsiz dört bite (-84 dB) kadar gerçek örnekleme gürültüsü, düşürme-93dB'den -110dB'ye kadar işitilebilir örnekleme gürültüsü. Sinyal gürültü oranı kötüleşti, ancak gürültü yüksek frekans bölgesine girdi ve işitilebilir olmaktan çıktı, bu da gerçek anlamda önemli bir gelişme(insan tarafından algılanabilir) sinyal-gürültü oranı.

    (Başka bir deyişle, gürültünün gücü, olduğu gibi, üst frekansları kaçırmadan frekans aralığının üzerine "bulaştığından", gücün bir kısmını ondan alırız, bunun sonucunda sinyal-gürültü oranı, sinyallerin zamansal gösteriminde gelişir. - Yaklaşık. stat.)

    Uygulamada, bu zaten 20 bitlik ses örneklemesinin gürültü seviyesidir. Bu teknolojinin tek koşulu, gürültü için frekansların varlığıdır. 44,1 kHz ses, sessiz bir ses seviyesinde duyulamayan 10-20 kHz frekanslarında parazit yerleştirmeyi mümkün kılar. Ancak 96 kHz'de dijitalleştirirseniz, gürültü için frekans alanı (insanlar tarafından duyulamaz) o kadar büyük olacaktır ki, şekillendirilmiş titreme kullanıldığında 16 bit Gerçekten 24'ün tamamına dönüş.

    [Not: PC Hoparlörü tek bitlik bir cihazdır, ancak oldukça yüksek bir maksimum örnekleme hızına sahiptir (tek bitin açık/kapalı). Özünde titremeye benzer, oldukça darbe genişliği modülasyonu adı verilen bir işlem yardımıyla, üzerinde oldukça yüksek kaliteli dijital ses çalındı ​​- bir bitten 5-8 bit düşük frekans çekildi ve yüksek bir örnekleme oranı ve yüksek frekanslı gürültü filtresi, ekipmanın bu kadar yüksek frekansları yeniden üretememesi ve bizim onları duyamamamızdı. Bununla birlikte, hafif, yüksek frekanslı bir ıslık - bu gürültünün işitilebilir kısmı - duyulabilirdi.]

    Böylece, şekillendirilmiş titreme, 16 bitlik sesin zaten düşük olan örnekleme gürültüsünü önemli ölçüde azaltmanıza olanak tanır, böylece kullanışlı (gürültüsüz) dinamik aralığı Tümü insan işitme alanı. Bir CD için 32 bitlik bir çalışma formatından son 16 bit'e çeviri yapılırken artık şekilli titreme her zaman kullanıldığından, 16 bitimiz bir sesli resmin tam olarak aktarılması için tamamen yeterlidir.

    Bu teknolojinin yalnızca materyali oynatmaya hazırlama aşamasında çalıştığına dikkat edilmelidir. Yüksek kaliteli sesi işlerken, basitçe gerekli her işlemden sonra titremeyi önlemek için 32 bitte kalın, 16 bite kadar daha iyi kodlama sonuçları elde edin. Ancak fonogramın gürültü seviyesi eksi 60 desibelden fazlaysa - en ufak bir vicdan azabı çekmeden tüm işlemleri 16 bit olarak gerçekleştirebilirsiniz. Ara titreşim, yuvarlama bozulmalarının olmamasını sağlar ve buna eklenen gürültü, yüzlerce kez mevcut olandan daha zayıf ve bu nedenle tamamen kayıtsız.

    Q:
    Neden 32 bit sesin 16 bit sesten daha iyi olduğu söyleniyor?
    A1: Onlar yanlış.
    A2: [Biraz farklı anlam ifade ediyorlar: sesi işlerken veya kaydederken gerek daha yüksek çözünürlük kullanın. onu kullanıyorlar Her zaman. Ancak bitmiş üründe olduğu gibi seste 16 bitten fazla çözünürlük gerekli değildir.]
    Q: Örnekleme hızını artırmak mantıklı mı (örneğin 48 kHz'e veya 96'ya kadar)?
    A1: sahip değil En azından DAC 44 kHz iletiminin tasarımında ne kadar yetkin bir yaklaşımla bütün istenen frekans aralığı
    A2: [Biraz farklı anlam ifade ediyorlar: mantıklı, ancak yalnızca sesi işlerken veya kaydederken.]
    Q: Yüksek frekansların ve bitliğin tanıtımı neden hala devam ediyor?
    A1: İlerlemenin ilerlemesi önemlidir. Nerede ve neden - o kadar önemli değil ...
    A2: Bu durumda birçok işlem daha kolaydır. Örneğin cihaz sesi işleyecekse bunu 96 kHz / 32 bitte yapması onun için daha kolay olacaktır. Hemen hemen tüm DSP'ler, ses işleme için 32 bit kullanır ve dönüştürmeleri unutma yeteneği, daha kolay bir geliştirme ve yine de kalitede hafif bir artıştır. Ve genel olarak - daha fazla işlem için ses sahip 16 bitten daha yüksek bir çözünürlükte depolamak anlamına gelir. Yalnızca ses çalan ileri teknoloji cihazlar için bu, kesinlikle kayıtsız.
    Q: 32x veya 24x ve hatta 18 bit DAC'ler 16 bit olanlardan daha mı iyi?
    A: Genel olarak - HAYIR. Dönüşümün kalitesi, bit derinliğine hiç bağlı değildir. AC "97 codec bileşeni (50 doların altındaki modern bir ses kartı) 18 bit codec kullanır ve sesi bu saçmalıkla karşılaştırılamayacak 500 dolarlık kartlar 16 bit kullanır. 16 bit ses çalmak kesinlikle fark etmez..
    Ayrıca, çoğu DAC'nin tipik olarak aldıklarından daha az bit oynattığını akılda tutmakta fayda var. Örneğin, tipik bir ucuz codec'in gerçek gürültü seviyesi -90 dB'dir, yani 15 bittir ve kendisi 24 bit olsa bile - "ekstra" 9 bitten herhangi bir geri dönüş alamazsınız - çalışmalarının sonucu, mevcut olsa bile, kendi gürültülerinde boğulur. En ucuz cihazlar sadece görmezden gelmek ek bitler - DAC'ın dijital girişine gitmelerine rağmen, ses sentez süreçlerinde gerçekten sayılmazlar.
    Q: Ve kayıt için?
    A: Kayıt için daha büyük kapasiteli bir ADC'ye sahip olmak daha iyidir. Yine, daha fazla gerçek biraz derinlik DAC'nin bit derinliği, orijinal fonogramın gürültü seviyesine karşılık gelmeli veya sadece istenen düşük seviyeyi elde etmek için yeterli olmalıdır. gürültü.
    Daha az hassas kayıt seviyesi kontrolü için daha yüksek dinamik aralığı kullanmak için biraz daha fazla derinliğe sahip olmak da kullanışlıdır. Ama unutma - her zaman vurmalısın gerçek kodek aralığı. Gerçekte, örneğin bir 32-bit ADC neredeyse tamamen anlamsız, düşük on bit sürekli olarak gürültü çıkaracağından - Bu yüzden düşük gürültü (-200 dB'nin altında) sadece olamaz analog bir müzik kaynağında.

    Sesten CD'ye kıyasla daha yüksek bit derinliği veya örnekleme frekansı talep etmeye değmez, daha iyi kalite. 16bit/44kHz, şekil titremesiyle sınırları zorlandı, oldukça yetenekli tamamen ses işleme süreci ile ilgili değilse ilgilendiğimiz bilgileri iletin. 96kHz/24bit ile DVD-Audio'dan üstün ses kalitesi beklemediğiniz gibi, bitmiş malzemenizdeki fazladan veriler için yer harcamayın. Yetkin bir yaklaşımla, standart bir CD formatında ses oluştururken, ses kalitesine sahip olacağız. sadece ihtiyacı yok daha fazla iyileştirme ve nihai verilerin doğru ses kaydının sorumluluğu, uzun zamandır geliştirilen algoritmalar ve bunları doğru kullanmayı bilen kişiler tarafından üstlenilmiştir. Geçtiğimiz birkaç yılda, ses kalitesinin sınırlarını zorlamak için biçimli titreşim ve diğer tekniklerin bulunmadığı yeni bir disk bulamayacaksınız. Evet, tembel veya sadece huysuz insanlar için 32 bit ve 96 kHz'de hazır malzeme vermek daha uygun olacaktır, ancak teoride - birkaç kat daha fazla ses verisine değer mi? ..

    Ses, televizyon ve sinemanın en parlak döneminde ortaya çıkan görüntü ile yakın bağlantıdan çoktan kopmuş olan modern dünyada giderek daha önemli bir rol oynuyor. Modern multimedya ekipmanı, yalnızca yeniden üretimi için değil, sesi değiştirmek için bile en geniş olanaklara sahiptir. Taşıyıcısına sıkıca basılmış, ölü bir kayıt, uzun geçmiş olayların statik bir yeniden üretimi olmaktan çoktan çıktı. Ses hakkındaki fikirlerimizin dönüşümünde en önemli rol, sesi modern cihazlar tarafından kolayca ve doğal bir şekilde çalıştırılabilen bir veri akışına dönüştürerek kaydetmek için dijital bir yöntemin geliştirilmesiyle oynandı.

    Formatlar: dijital ses nedir

    Bugün piyasadaki her multimedya cihazı, ister bir CD çalar, ister bir ses kaydedici veya bir flash bellek oynatıcı olsun, daha sonra sese dönüştürülen çok çeşitli veri akışları temsillerini kullanır. Ve profesyonel amaçlar için kullanılan daha fazla ses formatı icat edildi. Deneyimsiz bir alıcı, çeşitli kaynaklardan kutular ve cihazlar üzerindeki tanımlamalar hakkında bilgi almaya zorlanır, bu da genellikle yanlış bilgi alır veya daha da kafası karışır.

    Katalog bölümündeki hemen hemen her cihaz aynı anda birkaç ses formatını destekler ve bu kategoriye ait olmayan birçok cihaz da ses dosyalarını oynatma desteği ile etiketlenir. Okuyucumuza yardımcı olmak için küçük bir kısaltmalar sözlüğü oluşturmaya ve en yaygın biçimler hakkında konuşmaya karar verdik. Eklemelere ve düzeltmelere açık hale getirmeyi, yeni formatlar eklemeyi ve zaten bilinen veya unutulmuş olanların avantaj ve dezavantajlarını daha ayrıntılı olarak açıklamayı planlıyoruz.

    biraz teori

    Başlamak için, dijital sesin bir dizi sayıdan başka bir şey olmadığı hatırlanmalıdır. Belirleyici faktör, hava basıncı olarak sesin veri akışlarına dönüştürüldüğü ve daha fazla işlem ve oynatma için kodlandığı sistemdir. Buna göre, dijital ses genellikle formatını en sık (ancak her zaman değil) belirleyen çeşitli uzantılara sahip bilgisayar dosyalarında bulunur. Ve biçim kavramı paradoksal olarak iki anlama gelebilir. Birincisi, format, ortamın (disk veya kaset) hem türünü hem de fiziksel özelliklerini, kayıt yöntemini, kodlama ilkelerini ve hata korumayı içeren kapsamlı bir özellik olarak var olabilir. İkincisi, format yalnızca sesi kodlama ve sıkıştırma yöntemi olarak anlaşılabilir, çünkü aktarım için standart araçlar, örneğin bir bilgisayar kullanılır.

    Analog ses, dijitalden farklı olarak analog cihazlarda yeniden üretilir ve bir dizi önemli farklılığa sahiptir. Bir veri akışı olmayan analog ses, ses dalgasındaki değişimi temsil eden sürekli bir elektrik sinyali ile temsil edilir. Dijital bir formata çevirmek için ses "sayısallaştırılır", yani genliğin sayısal değerinin o anda sabitlendiği belirli bölümlere ayrılır. Dijital ses yaratma ilkelerine girmeyeceğiz, ancak sesin bir bölümü ne kadar sık ​​bölünür ve özellikleri tanımlanırsa, sesin kendisinin resmi o kadar net ve eksiksiz oluşturulur.

    Böyle bir süreç, sesi tanımlayan çok büyük miktarda veri üretir ve her dijital ses formatının, sesi mümkün olan en iyi şekilde sunma ihtiyacı ile bilgisayar veya oynatma cihazı belleğinin sınırlamaları arasında bir uzlaşmadan başka bir şey olmadığı açıktır.

    Biraz daha teori. İnsan kulağı çoğu durumda sesi 22.000 Hz'den yüksek olmayan bir frekansla algılar ve onu dijital biçimde tam olarak tanımlayabilmek için en az 44,1 kHz'lik bir örnekleme frekansı gerekir. Belirli bir zamanda bir sinyalin değerini kesinlikle doğru bir şekilde belirlemek imkansız olduğundan, sayısallaştırma sırasında niceleme gerçekleşir, yani sinyalin gerçek değerleri yaklaşık değerlerle değiştirilir. Ses niceleme seviyeleri ne kadar fazlaysa, sinyal seviyesi o kadar doğru tanımlanır. Sonuç olarak, her standart CD, aynı 44.1 kHz örnekleme frekansına ve 16 bit niceleme düzeyine sahip bir ses sinyali taşır ve bazı cihazlar 48 kHz frekansta örnekleme yapar.

    Projemiz üzerinde çalışırken tüm bunlar hakkında oldukça fazla şey öğrendik ve bugün dijital ses işleme ile uğraşıyorsanız bilmeniz gereken bazı temel kavramları parmaklarımla açıklamaya çalışacağım. Bu makale, hızlı Fourier dönüşümleri ve diğer şeyler gibi ciddi matematik içermez - bu formülleri internette bulmak kolaydır. Yüzleşmek zorunda kalacak şeylerin özünü ve anlamını anlatacağım.

    Dijitalleştirme veya orada ve geri

    Öncelikle dijital sinyalin ne olduğunu, analog sinyalden nasıl elde edildiğini ve analog sinyalin gerçekte nereden geldiğini bulalım. İkincisi, mümkün olduğu kadar basit bir şekilde, mikrofondaki zarın titreşimlerinden kaynaklanan voltaj dalgalanmaları olarak tanımlanabilir.

    Pirinç. 1. Ses dalga formu

    Bu, sesin bir osilogramıdır - ses sinyali böyle görünür. Sanırım herkes hayatında en az bir kere böyle fotoğraflar görmüştür. Bir analog sinyali dijitale dönüştürme işleminin nasıl çalıştığını anlamak için milimetre kağıda bir ses osilogramı çizmeniz gerekir. Her dikey çizgi için, osilogramla kesişme noktasını ve dikey ölçekte en yakın tamsayı değerini buluruz - bu tür değerlerden oluşan bir dizi, bir dijital sinyalin en basit kaydı olacaktır.

    Farklı frekanslardaki dalgaların nasıl üst üste bindiğini ve sayısallaştırmanın nasıl gerçekleştiğini anlamak için bu etkileşimli örneği kullanalım. Soldaki menüde grafiklerin gösterimini açıp kapatabilir, giriş verilerinin parametrelerini ve örnekleme parametrelerini ayarlayabilir veya kontrol noktalarını kolayca hareket ettirebilirsiniz.

    Gerçekte, ses kaydederken bir stereo efekti oluşturmak için, çoğu zaman bir değil, aynı anda birkaç kanal kaydedilir. Kullanılan saklama formatına bağlı olarak, bağımsız olarak saklanabilirler. Ayrıca sinyal seviyeleri, ana kanalın seviyesi ile mevcut kanalın seviyesi arasındaki fark olarak kaydedilebilir.

    Bir dijital sinyalden analoğa ters dönüştürme, farklı bir cihaza ve çalışma ilkelerine sahip olabilen dijitalden analoğa dönüştürücüler kullanılarak gerçekleştirilir. Bu makaledeki bu ilkelerin açıklamasını atlayacağım.

    Örnekleme

    Bildiğiniz gibi dijital sinyal, belirli zaman aralıklarında kaydedilen bir dizi sinyal seviyesi değeridir. Sürekli bir analog sinyali dijital bir sinyale dönüştürme işlemine örnekleme denir (zamana göre ve seviyeye göre). Bir dijital sinyalin iki ana özelliği vardır - örnekleme oranı ve seviye örnekleme derinliği.

    Yeşil, frekansı Nyquist frekansından daha yüksek olan frekans bileşenini gösterir. Böyle bir frekans bileşenini sayısallaştırırken, onu doğru bir şekilde tanımlayacak kadar veri kaydetmek mümkün değildir. Sonuç olarak, oynatma sırasında tamamen farklı bir sinyal elde edilir - sarı bir eğri.

    Sinyal gücü

    Başlangıç ​​​​olarak, dijital bir sinyal söz konusu olduğunda, yalnızca sinyalin göreceli seviyesinden bahsedebileceğinizi hemen anlamalısınız. Mutlak, öncelikle yeniden üretim ekipmanına bağlıdır ve göreli ile doğru orantılıdır. Bağıl sinyal seviyelerini hesaplarken, desibel kullanmak adettendir. Bu durumda, belirli bir örnekleme derinliğinde mümkün olan maksimum genliğe sahip bir sinyal referans noktası olarak alınır. Bu seviye 0 dBFS (dB - desibel, FS = Tam Ölçek - tam ölçek) olarak belirtilir. Alt sinyal seviyeleri -1 dBFS, -2 dBFS, vb. olarak belirtilir. Daha yüksek seviyelerin olmadığı oldukça açık (başlangıçta mümkün olan en yüksek seviyeyi alıyoruz).

    İlk başta, desibel ile gerçek sinyal seviyesinin nasıl ilişkili olduğunu anlamak zor olabilir. Aslında, her şey basit. Her ~6 dB (daha doğrusu 20 log(2) ~ 6,02 dB), sinyal seviyesinde iki kat bir değişiklik olduğunu gösterir. Yani -12 dBFS seviyesine sahip bir sinyalden bahsettiğimizde, bunun seviyesi maksimumdan dört kat daha az ve -18 dBFS sekiz kat daha düşük olan bir sinyal olduğunu anlıyoruz. Bir desibelin tanımına bakarsanız, bir değer belirtir - o zaman 20 nereden geliyor? Mesele şu ki, desibel, aynı isimdeki iki enerji miktarının oranının logaritması, 10 ile çarpılmasıdır. Genlik değil enerji değer, bu nedenle uygun bir değere dönüştürülmelidir. Farklı genlikteki dalgaların taşıdığı güç, genliğin karesiyle orantılıdır. Bu nedenle, genlik için (genlik dışındaki tüm koşullar değişmeden alınırsa), formül şu şekilde yazılabilir:

    Not: Bu durumda logaritmanın ondalık sayı olarak alındığını belirtmekte fayda var, oysa log adlı bir işlev altındaki çoğu kitaplık doğal bir logaritma varsayar.

    Farklı örnekleme derinliklerinde, bu ölçekteki sinyal seviyesi değişmeyecektir. -6 dBFS sinyali, -6 dBFS sinyali olarak kalacaktır. Ancak yine de bir özellik değişecek - dinamik aralık. Bir sinyalin dinamik aralığı, minimum ve maksimum değerleri arasındaki farktır. n'nin ayrıklaştırma derinliği olduğu formülle hesaplanır (kaba tahminler için daha basit bir formül kullanabilirsiniz: n * 6). 16 bit için ~96,33 dB, 24 bit için ~144,49 dB'dir. Bu, 24 bit örnekleme derinliği ile tanımlanabilecek en büyük seviye düşüşünün (144,49 dB), 16 bit derinlikle (96,33 dB) en büyük seviye düşüşünden 48,16 dB daha büyük olduğu anlamına gelir. Ayrıca, 24 bitteki ezme sesi 48 dB daha sessizdir.

    Algı

    İnsanın ses algısı hakkında konuştuğumuzda, öncelikle insanların sesi nasıl algıladıklarını anlamalıyız. Açıkçası, kulaklarımızla işitiyoruz. Ses dalgaları kulak zarı ile etkileşime girerek onu yerinden eder. Titreşimler, alıcılar tarafından alındıkları iç kulağa iletilir. Kulak zarının ne kadar hareket ettiği, ses basıncı gibi bir özelliğe bağlıdır. Bu durumda, algılanan ses yüksekliği doğrudan değil, logaritmik olarak ses basıncına bağlıdır. Bu nedenle, ses seviyesini değiştirirken, değerleri aynı desibelde gösterilen göreceli ölçek SPL'yi (ses basıncı seviyesi) kullanmak gelenekseldir. Bir sesin algılanan yüksekliğinin yalnızca ses basıncı seviyesine değil, aynı zamanda sesin frekansına da bağlı olduğunu belirtmekte fayda var:

    Hacim

    Ses işlemenin en basit örneği ses seviyesini değiştirmektir. Bu durumda, sinyal seviyesi basitçe sabit bir değerle çarpılır. Ancak ses ayarı gibi basit bir konuda bile bir tuzak vardır. Daha önce belirttiğim gibi, algılanan ses yüksekliği ses basıncının logaritmasına bağlıdır, bu da doğrusal bir ses yüksekliği ölçeği kullanmanın çok etkili olmadığı anlamına gelir. Doğrusal bir hacim ölçeğinde, aynı anda iki sorun ortaya çıkar - hacimde gözle görülür bir değişiklik için, kaydırıcı ölçeğin ortasının üzerindeyken, yeterince uzağa hareket ettirmeniz gerekir, ölçeğin en altına yaklaşırken, bir saç kalınlığından daha az bir kayma hacmi iki kez değiştirebilir (sanırım herkes buna rastlamıştır). Bu sorunu çözmek için logaritmik bir ses yüksekliği ölçeği kullanılır. Aynı zamanda, kaydırıcıyı tüm uzunluğu boyunca sabit bir mesafede hareket ettirmek, sesi aynı sayıda değiştirir. Profesyonel kayıt ve işleme ekipmanında, kural olarak, kullanılan logaritmik ses yüksekliği ölçeğidir.

    Matematik

    Burada belki biraz matematiğe döneceğim çünkü logaritmik ölçeğin uygulanması birçokları için o kadar basit ve açık bir şey değil ve bu formülü internette bulmak istediğimiz kadar kolay değil. Aynı zamanda size ses değerlerini dBFS'ye ve tersini yapmanın ne kadar kolay olduğunu göstereceğim. Daha fazla açıklama için yardımcı olacaktır.

    // Minimum ses değeri - bu seviyede ses kapatılır var EPSILON = 0.001; // dBFS'ye ve dBFS'den dönüştürme katsayısı var DBFS_COEF = 20 / Math.log(10); // Ölçekteki konumdan hacmi hesaplar var volumeToExponent = function(value) ( ​​​​var volume = Math.pow(EPSILON, 1 - value); dönüş hacmi > EPSILON ? hacim: 0; ); // Hacim değerinden ölçek üzerindeki konumu hesaplar var volumeFromExponent = function(hacim) ( return 1 - Math.log(Math.max(hacim, EPSILON)) / Math.log(EPSILON); ); // Hacim değerini dBFS'ye çevir var volumeToDBFS = function(volume) ( return Math.log(volume) * DBFS_COEF; ); // dBFS değerini hacme dönüştür var volumeFromDBFS = function(dbfs) ( return Math.exp(dbfs / DBFS_COEF); )

    dijital işleme

    Şimdi analog değil dijital bir sinyale sahip olduğumuz gerçeğine geri dönelim. Yüksek sesle çalışırken dikkate almanız gereken bir dijital sinyalin iki özelliği vardır:
    • sinyal seviyesinin gösterildiği doğruluk sınırlıdır (ve oldukça güçlüdür. 16 bit, standart bir kayan nokta sayısı için kullanılandan 2 kat daha azdır);
    • sinyalin aşamadığı bir üst seviye sınırı vardır.

    Sinyal seviyesinin bir doğruluk sınırına sahip olması iki şeyi ifade eder:

    • Hacim arttıkça ezilme sesinin seviyesi artar. Küçük değişiklikler için, bu genellikle çok kritik değildir, çünkü ilk gürültü seviyesi algılanandan çok daha sessizdir ve güvenli bir şekilde 4-8 kat artırılabilir (örneğin, ölçek limiti ±12dB olan bir ekolayzır kullanın);
    • önce sinyal seviyesini büyük ölçüde düşürmemeli ve sonra büyük ölçüde artırmamalısınız - bu durumda, orijinal olarak orada olmayan yeni kırma sesleri görünebilir.

    Sinyalin bir üst seviye sınırı olduğu gerçeğinden, ses seviyesini birliğin üzerine çıkarmanın güvenli olmadığı sonucu çıkar. Bu durumda limitin üzerinde olan pikler “kesilir” ve veri kaybı oluşur.

    Uygulamada, tüm bunlar, Ses CD'si için standart örnekleme parametrelerinin (16 bit, 44,1 kHz) yüksek kaliteli ses işlemeye izin vermediği anlamına gelir, çünkü çok az fazlalıkları vardır. Bu amaçlar için, daha fazla gereksiz format kullanmak daha iyidir. Ancak, toplam dosya boyutunun örnekleme parametreleriyle orantılı olduğunu unutmayın, bu nedenle bu tür dosyaları çevrimiçi oynatma için yayınlamak iyi bir fikir değildir.

    ses yüksekliği ölçümü

    İki farklı sinyalin ses şiddetini karşılaştırmak için öncelikle bir şekilde ölçülmesi gerekir. Sinyallerin yüksekliğini ölçmek için en az üç metrik vardır - maksimum tepe değeri, sinyal seviyesinin ortalama değeri ve ReplayGain metriği.

    Maksimum tepe değeri, ses yüksekliğini değerlendirmek için oldukça zayıf bir ölçümdür. Genel ses seviyesini hiçbir şekilde hesaba katmaz - örneğin, bir fırtına kaydederseniz, çoğu zaman kayıtta sessizce yağmur yağar ve yalnızca birkaç kez gök gürültüsü gürler. Böyle bir kaydın sinyal seviyesinin maksimum tepe değeri oldukça yüksek olacaktır, ancak kaydın çoğunda çok düşük bir sinyal seviyesi olacaktır. Bununla birlikte, bu ölçüm yine de kullanışlıdır - zirvelerin "kesilmesi" nedeniyle hiçbir veri kaybının olmayacağı kayda uygulanabilecek maksimum kazancı hesaplamanıza olanak tanır.

    Ortalama sinyal seviyesi daha kullanışlı bir ölçüdür ve kolayca hesaplanır, ancak yine de sesi nasıl algıladığımızla ilgili önemli sakıncaları vardır. Aynı ortalama sinyal seviyesiyle kaydedilen bir daire testerenin gıcırtısı ve bir şelalenin gürültüsü tamamen farklı algılanacaktır.

    ReplayGain, kaydın algılanan ses seviyesini en doğru şekilde aktarır ve ses algısının fizyolojik ve zihinsel özelliklerini hesaba katar. Kayıtların endüstriyel olarak yayınlanması için birçok kayıt stüdyosu bunu kullanır ve ayrıca çoğu popüler medya oynatıcı tarafından da desteklenir. (WIKI birçok yanlışlık içerir ve aslında teknolojinin özünü doğru bir şekilde tanımlamaz)

    Hacim normalleştirme

    Farklı kayıtların yüksekliğini ölçebilirsek normalleştirebiliriz. Normalleştirme fikri, farklı sesleri aynı algılanan ses yüksekliği seviyesine getirmektir. Bunu yapmak için birkaç farklı yaklaşım kullanılır. Kural olarak, sesi en üst düzeye çıkarmaya çalışırlar, ancak bu, maksimum sinyal seviyesinin sınırlamaları nedeniyle her zaman mümkün değildir. Bu nedenle, bazı değerler genellikle tüm sinyallerin getirmeye çalıştığı maksimum değerden (örneğin -14 dBFS) biraz daha az alınır.

    Ses yüksekliği bazen tek bir kayıt içinde normalleştirilir ve kaydın farklı bölümleri, algılanan ses yüksekliklerinin aynı olması için farklı miktarlarda yükseltilir. Bu yaklaşım, bilgisayar video oynatıcılarında çok sık kullanılır - birçok filmin müzikleri, çok farklı yüksekliğe sahip bölümler içerebilir. Böyle bir durumda, daha sonra kulaklıksız film izlerken sorunlar ortaya çıkar - normalde ana karakterlerin fısıltılarının duyulduğu bir ses seviyesinde, çekimler komşuları uyandırabilir. Ve çekimlerin kulaklara çarpmadığı bir ses seviyesinde, fısıltı genellikle ayırt edilemez hale gelir. Parça içi ses normalleştirmesi ile oynatıcı, sessiz alanlarda sesi otomatik olarak yükseltir ve gürültülü alanlarda azaltır. Bununla birlikte, bu yaklaşım, sessiz ve yüksek ses arasındaki keskin geçişler sırasında somut oynatma yapaylıkları yaratır ve ayrıca bazen, tasarım gereği arka planda olması ve zar zor ayırt edilmesi gereken bazı seslerin yüksekliğini abartır.

    Ayrıca, parçaların genel hacmini artırmak için bazen dahili normalleştirme yapılır. Buna sıkıştırma ile normalleştirme denir. Bu yaklaşımla, sinyal seviyesinin ortalama değeri, tüm sinyali belirli bir miktarda yükselterek maksimize edilir. "Kesilmesi" gereken alanlar, maksimum seviyeyi aştığı için daha küçük bir miktar büyütülür ve bundan kaçınılır. Bu ses seviyesini artırma yöntemi, parçanın ses kalitesini önemli ölçüde azaltır, ancak yine de birçok kayıt stüdyosu bunu kullanmaktan çekinmez.

    filtreleme

    Kesinlikle tüm ses filtrelerini açıklamayacağım, kendimi yalnızca Web Ses API'sinde bulunan standart olanlarla sınırlayacağım. Bunların en basiti ve en yaygın olanı biquad filtresidir (BiquadFilterNode) - bu, oldukça fazla sayıda efekti yeniden üretebilen sonsuz dürtü yanıtına sahip aktif bir ikinci dereceden filtredir. Bu filtrenin çalışma prensibi, her biri iki örnek içeren iki tampon kullanımına dayanmaktadır. Bir tampon, giriş sinyalindeki son iki örneği içerir, diğer tampon, çıkış sinyalindeki son iki örneği içerir. Ortaya çıkan değer, beş değer toplanarak elde edilir: mevcut numune ve her iki tampondan alınan numuneler, önceden hesaplanmış katsayılarla çarpılır. Bu filtrenin katsayıları doğrudan ayarlanmaz, frekans, kalite faktörü (Q) ve kazanç parametrelerinden hesaplanır.

    Aşağıdaki tüm grafikler 20 Hz ile 20.000 Hz arasındaki frekans aralığını göstermektedir. Yatay eksen frekansı gösterir, boyunca bir logaritmik ölçek uygulanır, dikey eksen - 0'dan 2'ye büyüklük (sarı grafik) veya -Pi'den Pi'ye faz kayması (yeşil grafik). Tüm filtrelerin frekansı (632 Hz) grafikte kırmızı bir çizgi ile işaretlenmiştir.

    Düşük geçiş



    Pirinç. 8. Düşük geçiş filtresi.

    Yalnızca ayarlanan frekansın altındaki frekansları iletir. Filtre, frekans ve kalite faktörüne göre ayarlanır.

    yüksek geçiş



    Pirinç. 9. Yüksek geçiş filtresi.

    Düşük geçişe benzer şekilde çalışır, ancak frekansları belirtilen frekansın altından değil, üstünden geçirir.

    bant geçişi



    Pirinç. 10. Bant geçiren filtre.

    Bu filtre daha seçicidir - yalnızca belirli bir frekans bandını geçer.

    Çentik



    Pirinç. 11. Çentik filtresi.

    Bant geçirmenin tersidir - verilen bandın dışındaki tüm frekansları geçirir. Bununla birlikte, darbenin zayıflama eğrilerindeki ve bu filtrelerin faz özelliklerindeki farkı belirtmekte fayda var.

    Düşük raf



    Pirinç. 12. Düşük raf filtresi.

    Yüksek geçişin daha "akıllı" bir versiyonudur - ayarlananın altındaki frekansları artırır veya azaltır, yukarıdaki frekansları değiştirmeden geçirir. Filtre, frekans ve kazanç tarafından ayarlanır.

    yüksek raf



    Pirinç. 13. Yüksek raf filtresi.

    Alçak geçişin daha akıllı bir versiyonu - belirli bir frekansın üzerindeki frekansları yükseltir veya azaltır, aşağıdaki frekansları değiştirmeden geçirir.

    zirve



    Pirinç. 14. zirve filtresi.

    Bu, çentiğin daha "akıllı" bir versiyonudur - belirli bir aralıktaki frekansları artırır veya azaltır ve geri kalan frekansları değiştirmeden geçer. Filtre frekans, kazanç ve kalite faktörü ile ayarlanır.

    tüm geçiren filtre



    Pirinç. 15. Allpass filtresi.

    Allpass diğerlerinden farklıdır - sinyalin genlik özelliklerini değiştirmez, bunun yerine verilen frekanslarda faz kayması yapar. Filtre, frekans ve kalite faktörüne göre ayarlanır.

    WaveShaperNode filtresi

    Waveshaper (), karmaşık ses distorsiyon efektleri oluşturmak için kullanılır, özellikle "distortion", "overdrive" ve "fuzz" efektlerini uygulamak için kullanılabilir. Bu filtre, giriş sinyaline özel bir biçimlendirme işlevi uygular. Bu tür işlevleri oluşturma ilkeleri oldukça karmaşıktır ve ayrı bir makale gerektirir, bu nedenle açıklamalarını atlayacağım.

    ConvolverNode filtresi

    Giriş sinyalini, belirli bir dürtü yanıtını tanımlayan bir ses arabelleği ile doğrusal olarak birleştiren bir filtre. Dürtü yanıtı, bir sistemin tek bir dürtüye verdiği yanıttır. Basit bir ifadeyle, buna sesin "fotoğrafı" denilebilir. Gerçek bir fotoğraf ışık dalgaları hakkında, bunların nasıl yansıtıldığı, emildiği ve etkileşime girdiği hakkında bilgi içeriyorsa, dürtü tepkisi de ses dalgaları hakkında benzer bilgiler içerir. Bir ses akışının böyle bir "fotoğraf" ile evrilmesi, dürtü yanıtının alındığı ortamın giriş sinyali üzerindeki etkilerini olduğu gibi empoze eder.

    Bu filtrenin çalışması için sinyalin frekans bileşenlerine ayrıştırılması gerekir. Bu ayrıştırma, (maalesef, Rusça Vikipedi'de tamamen boştur, görünüşe göre, bir FFT'nin ne olduğunu zaten bilen ve aynı boş makaleyi kendileri yazabilen kişiler için yazılmıştır). Girişte de söylediğim gibi bu yazıda FFT'nin matematiğini vermeyeceğim ancak dijital sinyal işleme için mihenk taşı algoritmasından bahsetmemek yanlış olur.

    Bu filtre yankı efektini uygular. Bu filtre için çeşitli efektler ( , ) uygulayan birçok hazır ses tamponu kitaplığı vardır, bu tür kitaplıklar istek üzerine kolayca temin edilebilir.