टेलीफोन संचार प्रणालियाँ इस प्रकार हैं।

system

इनमें से, मैं एक पुनरावर्तक विकसित करने जा रहा हूं। पुनरावर्तक tcp/ip संचार करता है।

क्रमशः उपयोगकर्ता 1 और उपयोगकर्ता 2 से बाइट्स में एडीपीसीएम डेटा प्राप्त करें।

मैं पुनरावर्तक से प्राप्त डेटा को ऑडियो फ़ाइल के रूप में सहेजना चाहता हूं।

एक बार एक तरफ (उपयोगकर्ता 1) से डेटा एकत्र किया गया और बाइट सरणी में बनाया गया, मैंने Naudio का उपयोग करके एक WAV फ़ाइल बनाई, लेकिन यह विफल रही।

जब मैं इसे विंडो 10 के डिफ़ॉल्ट प्लेबैक ऐप का उपयोग करके चलाता हूं, तो यह लगभग 1 सेकंड तक चलता है और समाप्त होता है। हालाँकि, कुल खेलने का समय लंबा है, जैसे कि 6 सेकंड और 7 सेकंड।

नीचे दिया गया डेटा मेरे द्वारा बनाई गई WAV फ़ाइल के बाइनरी डेटा की शुरुआत से एक हिस्सा है।

52 49 46 46 बी 4 65 00 00 57 41 56 45 66 6 डी 74 20 32 00 00 00 02 00 01 00 40 1 एफ 00 00 00 10 00 00 00 01 04 00 20 00 एफ 4 01 07 00 00 01 00 00 00 02 00 एफएफ 00 00 00 00 C0 00 40 00 F0 00 00 00 सीसी 01 30 एफएफ 88 01 18 एफएफ 66 61 63 74 04 00 00 00 सी 4 सीए 00 00 64 61 74 61 62 65 00 00 77 77 77 68 08 08 08 08 08 08 08 08 08 08 80 08 08 9ए 99 99 90 01 21 21 12 25 53 40 9ए बी9 91 24 34 11 8ए बीसी एए 80 13 17 43 42 12 09 8ए एबी डीबी बीबी बीए 9ए 88 12 02 ए0 बीए बीबी डीबी ए9 8ए 01 33 33 31 10 1A 0B BB BA A0 91 22 32 11 90 A9 BB 9B 11 23 33 41 11 19 9B AB B9 11 22 13 35 11 08 99 AA BC A1 A1 00 31 31 11 A9 0A AB BB 9A 10 13 14 12 91 90 9बी 9बी बी9 ए0 11 13 41 29 29 09 9बी एबी बी9 09 10 13 33 11 ए9 बीबी बीबी सीए 09 00 12 33 33 39 39 1ए एए बी9 बी1 91 22 33 40 01 90 ए9 बीसी ए9 99 01 31 41 01 9ए 9बी 9सी 9ए 9ए 90 01 33 33 21 01 09 9बी ए9 90 11 11 33 33 21 01 0ए 9बी 9ए 99 01 03 14 10 19 99 बी9 बीबी बीए 90 12 33 11 20 91 ए9 99 9ए 01 02 11 33 01 10 09 99 बी0 ए0 10 12 13 31 29 99 9बी 9ए बी0 99 90 01 11 21 90 91 09 19 09 10 90 12 03 19 19 19 09 99 19 9 9 00 11 13 10 90 99 बीए बी 9 बी 0 99 00 01 91 00 99 11 99 00 11 01 11 11 11 19 99 11 91 91 11 00 10 01 20 01 90 99 एए 9 ए 99 01 91 99 9 ए 9 ए 99 19 01 10 11 11 21 11 3ए 09 99 90 00 31 11 19 10 91 91 11 01 9ए

यहां वह कोड है जिसे मैंने कार्यान्वित किया है (ऑडियोडेटा adpcmdata की बाइट सरणी है):

        var adpcmWaveFormat = new AdpcmWaveFormat(8000, 1);

        using (WaveFileWriter writer = new WaveFileWriter("D:\\test.wav", adpcmWaveFormat))
        { 
            writer.Write(audiodata, 0, audiodata.Length);
        }

मैं ऑडियो फ़ाइल के रूप में एडीपीसीएम डेटा कैसे सहेज सकता हूं?

और मैं एक ही समय में एक फ़ाइल में उपयोगकर्ता 1 और उपयोगकर्ता 2 की आवाज़ों को कैसे सहेजूँ?

0
playground 6 जिंदा 2021, 06:18
जब आप परिणामी फ़ाइल को VLC जैसी किसी चीज़ में चलाते हैं तो यह कैसा लगता है?
 – 
Corey
15 जिंदा 2021, 07:23

1 उत्तर

सबसे बढ़िया उत्तर

फ़ाइल के शीर्षलेख (ऊपर आपके डेटा ब्लॉक से) 8kHz मोनो ADPCM के लिए ठीक दिखते हैं। ये सभी NAudio द्वारा लिखे गए हैं इसलिए मुझे उम्मीद है कि ये कोड से मेल खाएंगे। इस विशेष फ़ाइल में कुल 51,908 नमूने (~ 6.5 सेकंड) हैं, जो डेटा खंड में 25,954 बाइट्स के डेटा के साथ मेल खाता है। अब तक, बहुत अच्छा... यदि डेटा Microsoft ADPCM प्रारूप में है।

दुर्भाग्य से सूक्ष्म अंतर के साथ कई एडीपीसीएम प्रारूप हैं, चाहे कोडेक द्वारा उपयोग किए जाने वाले गुणांक में, प्रति नमूना बिट्स की संख्या (कहीं भी 2 से 6, हालांकि 4 सबसे आम है), समर्थित नमूना दर और ब्लॉक एन्कोडिंग। G723 टेलीफोनी में आम हुआ करता था लेकिन आपको हर तरह का मिल जाएगा।

समर्थित सुविधाओं में अंतर के अलावा (बिट्स प्रति नमूना, चैनल गणना, नमूना आवृत्ति, आदि) विभिन्न प्रारूप विभिन्न ब्लॉक संरचनाओं का उपयोग करते हैं। आईएमए/डीवीआई एडीपीसीएम बहाव को ठीक करने और डिकोडर स्थिति को वापस सिंक में लाने के लिए 4-बाइट हेडर के साथ नमूनों के ब्लॉक का उत्पादन करता है।

अगर मुझे अनुमान लगाना होता, हालांकि मैं Dialogic/OKI जैसी किसी चीज़ के साथ जाता एडीपीसीएम प्रारूप।

0
Corey 15 जिंदा 2021, 09:00