ارسم الصوت

منذ خمس سنوات ، تم نشر مقال بعنوان "طباعة واستنساخ الصوت على الورق" على Habré - حول نظام إنشاء وتشغيل البرامج الطيفية . ثم ، منذ سنة ونصف ، نشر مكلون سعيًا أصبح فيه هذا الطيف اللوغاريتمي بالأبيض والأسود أحد المراحل. وفقًا لنية المؤلف ، كان من الضروري طباعتها على طابعة ، ومسحها ضوئيًا باستخدام هاتف ذكي باستخدام تطبيق المشغل ، واستخدام كلمة المرور "التي تم إملاءها" بهذه الطريقة.


في تلك اللحظة ، لم يكن لدي أي اتصال للطابعة أو الهاتف الذكي ، لذلك كنت مهتمًا بجانبين من المهمة:

  1. ما هي أسهل طريقة لفك تشفير الطيفية بدون أجهزة إضافية وبدون برامج إضافية - ويفضل أن يكون ذلك في المتصفح؟
  2. هل من الممكن فك تشفيره دون أي برنامج على الإطلاق - "بالعين"؟

(بالنسبة لأولئك الذين يرون الطيفية لأول مرة ، يجدر توضيح أن هذا رسم بياني حيث يمضي وقت التكاثر على طول المحور الأفقي ، وتردد الصوت على طول المحور العمودي (هو لوغاريتمي) ، ودرجة سواد النقطة تشير إلى قوة هذا التردد في وقت معين.)

لم أجد أي برامج نصية جاهزة لإعادة إنتاج البرامج الطيفية ، على الرغم من أنه من السهل العثور على أمثلة للتحويل العكسي - الصوت إلى الطيفية - نظرًا لحقيقة أن وظيفة AnalyserNode.getByteFrequencyData() مدمجة في واجهة برمجة تطبيقات Web Audio. ولكن لتحويل صفيف تردد إلى صفيف PCM للتشغيل ، لا يمكنك القيام دون تنفيذ تحويل فورييه معكوس (DFT) في برنامج نصي.
* في المثال الأول ، كتسجيل صوتي للتحليل الطيفي ، جزء من المسار "  DeltaMi1= alpha sumn=1NDi[n] left[ sumj inC[i]Fji[n1]+F exti[n1] right]"من Aphex Twin: كرسالة سرية ، قام الموسيقي بتضمين صورة شخصية على هذا المسار ، والتي تظهر على مخطط لوغاريتمي. لسوء الحظ ، يتم عرض المخطط الطيفي خطيًا ، بحيث يتم مد الوجه في الجزء العلوي وضغطه في الأسفل.
فيما يتعلق بتنفيذ DFT ، فمن الواضح على الفور أن مثل هذا "التعطل" في جافا سكريبت النقي ستعمل ببطء وحزن ؛ لحسن الحظ ، اكتشفت أن المنفذ الجاهز لمكتبة FFTW ("Fastest Fourier Transform in the West") على asm.js هو شكل من أشكال تمثيل الكود المنخفض المستوى ، مكتوبًا عادةً في لغة C ، والتي تعد المتصفحات الحديثة بتنفيذها بسرعة تشبه إلى حد كبير المترجمة إلى رمز الآلة. الرابط لـ FFTW ، الذي يحول الصورة بالأبيض والأسود إلى ملف WAV ، أخذت من ARSS وأعدت كتابته شخصيًا في JavaScript. يقبل ARSS الصور المقلوبة مقارنةً بـ PhonoPaper ، ولم أغيرها.

النتيجة التي يمكنك الإعجاب بها على tyomitch.imtqy.com/#meklon.png

في الجزء السفلي ، تكون الخطوط الأفقية المكررة مرئية - أشكال ، حيث يتم التعرف على حروف العلة. في الأعلى - "انفجارات" رأسية تقابل حروف العلة الصاخبة : أوسع - فترة زمنية محددة (احتكاكية) ، أضيق - صوتي. بالنسبة للحروف الساكنة الصوتية ([r] و [l]) ، تتوافق "السحب" في الترددات المتوسطة.



من أجل اللعب مع الطيفية ، أرفقت رسمًا بدائيًا ، تم نسخه بالكامل تقريبًا من البرنامج التعليمي لرسم اللوحات القماشية. يسمح لك الزر "نسخ" بنقل الصورة إلى القناة الحمراء (يتم تجاهلها من قِبل المزج) ومحاولة "دائرة" الأصوات.

كتبت ويكيبيديا: "يعتقد أن تخصيص أربعة أشكال تكون كافية لوصف أصوات الكلام" . نقوم بتدوير الصيغ F 2 -F 4 (لسبب ما يتم تجاهل F 1 بواسطة المزج) ، وتأكد من التعرف على حروف العلة تمامًا:



بعد ذلك نقوم بتدوير الحروف الساكنة الصاخبة: الغموض [h] هو [t] ، يتحول بسلاسة إلى [w]؛ ويتم تمييزها [d] من الصم [t] بوجود تراكيب متوسطة التردد. يمكنك الآن التمييز بين الأرقام "ستة" و "de'it":



أضف حروفًا رمادية داكنة للابن: في نفس الوقت ، لاحظ أن [p] قليلاً "تثير" أشكال حرف العلة ، و [l] - على العكس من ذلك ، يتم حذفها.



ظلت الحروف الساكنة الشفوية فقط [b] و [c] يسيء فهمها ، ولكن حتى بدونها تكون كلمة المرور أكثر وضوحًا إلى حد ما .

هل من الممكن سحب الصوت من نقطة الصفر دون تتبع الطيفية للتسجيل الصوتي؟ بصراحة ، أنا لم ينجح. ربما تريد أن تجرب ذلك بنفسك؟

Source: https://habr.com/ru/post/ar469775/


All Articles