मेरे पास समान समस्याएं हैं। मैं वेब पर बहुत सारे ऑडियो से निपटता हूं। मुझे ऑडियो गिरावट, ऑडियो नाटक इत्यादि के लिए चेक स्वचालित करना है। मुझे वास्तव में ग्रोवी या रूबी (मैंने पायथन की जांच नहीं की) में मेरी मदद करने के लिए लाइब्रेरी नहीं मिल सका, इसलिए मैंने एक स्थापित प्रोग्राम (एसओएक्स) और अगर ऑडियो सुना या नहीं तो यह वास्तविक समय की जांच करेगा।
यह मेरा ग्रूवी कॉल/लिपि था:
def audioCheck = "sox -t coreaudio Soundflower /Users/me/project/record.wav silence 1 0.1 1% 1 .1 1%".execute()
audioCheck.waitFor()
println "EXIT VALUE FOR SOX IS: ${audioCheck.exitValue()}"
if(audioCheck.exitValue() == 0){
// some stuff would happen now, if exit code is 0
}
मुख्य ऑडियो और "Soundflower"
सॉक्स कॉल (आयकर CoreAudio के साथ ऑडियो बोर्ड को निर्दिष्ट करता है आप लिनक्स पर के बारे में शायद 'कोरौडियो' के बजाय अल्सा का उपयोग करेगा - कोरौड्यूओ ओएसएक्स ऑडियो इंटरफ़ेस है।) "ध्वनिफ्लॉवर" पैरामीटर वह चैनल है जिसे मैंने साउंडफ्लॉवर में बनाया है। अलगाव में ध्वनि रिकॉर्ड करना मेरे लिए महत्वपूर्ण था (क्योंकि मैं ऑडियो गुणवत्ता जांच कर रहा था।) उदाहरण के लिए, यदि आपने डिफ़ॉल्ट चैनल का उपयोग किया है, जैसे अल्सा डिफ़ॉल्ट या कोरौडियो डिफ़ॉल्ट, यह आपके माइक को उठाएगा ... तो अगर आपके बगल में लड़का छींकता है ... यह परीक्षण को दूषित करता है।
वर्चुअल ऑडियो चैनल (जैसे ओएसएक्स पर साउंडफ्लॉवर के साथ) का उपयोग करके, आप अपने सभी ऑडियो "आउट" को "ध्वनिफ्लॉवर" पर जाने के लिए सेट कर सकते हैं, फिर उस चैनल पर सोक्स कमांड चलाएं ... और आप केवल वर्चुअल चैनल से बाहर आने वाले सिस्टम ऑडियो को सुनें।
इसके बजाय आप अपने डिफ़ॉल्ट चैनल का उपयोग कर सकते हैं (लेकिन यह खत्म हो जाएगा, जब यह कमरे में अन्य शोर सुनता है।)
मुझे लगता है कि कोड ग्रूवी कार्यों का उपयोग कर async भाग गया ... ताकि कोड की तरह कुछ में लपेटा गया था:
def listener = task { ... my script above ... }
चूंकि यह अतुल्यकालिक रूप से सुन रहा था, यह शेष परीक्षण को अवरुद्ध नहीं करेगा।
सॉक्स आदेश
वास्तविक सॉक्स वास्तविक समय आदेश मैं करता था, इस आदमी के वीडियो से आया है (यह बाहर की जाँच के रूप में वह कुछ विभिन्न मापदंडों का उपयोग करता है):
https://www.youtube.com/watch?v=Q5ntlKE0ze4
विस्तार यह
मैं इसे रिकॉर्डिंग को स्वचालित करने में सक्षम होने का ऑडियो के माध्यम से खेला से थोड़ा आगे धक्का दिया ब्राउज़र और फिर पीईएसक्यू एल्गोरिदम का उपयोग यह निर्धारित करने के लिए करें कि रिकॉर्ड किए गए ऑडियो को मूल ऑडियो के साथ कितनी बारीकी से खेला गया था। आपको लगता है कि में रुचि रखते हैं, उस पर मेरी पोस्ट की जाँच के लिए स्वतंत्र महसूस:
http://sdet.us/webrtc-audio-quality-automation-with-pesq/
अजगर PCAP स्क्रैप करना
हो सकता है कि आप क्या कर रहे से संबंधित नहीं है, लेकिन मैं यह भी है पैकेट कैप्चर से ऑडियो पुनर्निर्माण के लिए पायशार्क लाइब्रेरी का उपयोग करने के साथ खेला ... यह अधिक जटिल और शायद अधिक नाजुक है।
http://sdet.us/python-pcap-parsing-audio-from-sip-call/
मुझे डर है कि यह कुछ एक webdriver संभाल कर सकते हैं नहीं है हूँ: लेकिन अगर ब्याज की है, यहाँ मेरी कार्यान्वयन है। – alecxe
मैंने यह बहुत सोचा। शायद पाइथन या कुछ और पर दुबला होना पड़ सकता है। –
मैं कैसे आप ब्राउज़र सेलेनियम द्वारा शुरू की यह करने के लिए किसी भी ऑडियो भेज रहा है कि क्या रिपोर्ट करने के लिए ओएस 'ऑडियो सिस्टम क्वेरी करने के इस छोटे से करना चाहते हैं पता नहीं है। – Louis