中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

使用python怎么錄音麥克風并生成wav文件-創(chuàng)新互聯(lián)

這期內容當中小編將會給大家?guī)碛嘘P使用python怎么錄音麥克風并生成wav文件,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)服務器機柜租用,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

如下所示:

File: gen_wav.py
Date: 2017/03/24 12:36:27
Brief: 通過麥克風錄音 生成 wav文件
"""

import os
import sys
import wave
import numpy as np 
from datetime import datetime
from pyaudio import PyAudio, paInt16



class GenAudio(object):
    def __init__(self):
        self.num_samples = 2000    #pyaudio內置緩沖大小
        self.sampling_rate = 8000  #取樣頻率
        self.level = 1500          #聲音保存的閾值
        self.count_num = 20        #count_num個取樣之內出現(xiàn)COUNT_NUM個大于LEVEL的取樣則記錄聲音
        self.save_length = 8       #聲音記錄的最小長度:save_length * num_samples 個取樣
        self.time_count = 8        #錄音時間,單位s
        self.voice_string = []

    
    #保存文件
    def save_wav(self, filename):
        wf = wave.open(filename, 'wb') 
        wf.setnchannels(1) 
        wf.setsampwidth(2) 
        wf.setframerate(self.sampling_rate) 
        wf.writeframes(np.array(self.voice_string).tostring())
        wf.close()
    
    
    def read_audio(self):
        pa = PyAudio() 
        stream = pa.open(format=paInt16, channels=1, rate=self.sampling_rate, input=True, 
                frames_per_buffer=self.num_samples) 
        
        save_count = 0
        save_buffer = [] 
        time_count = self.time_count

        while True:
            time_count -= 1
            
            # 讀入num_samples個取樣
            string_audio_data = stream.read(self.num_samples)     
            # 將讀入的數(shù)據(jù)轉換為數(shù)組
            audio_data = np.fromstring(string_audio_data, dtype = np.short)
            #計算大于 level 的取樣的個數(shù)
            large_sample_count = np.sum(audio_data > self.level)
            
            print(np.max(audio_data)),  "large_sample_count=>", large_sample_count

            # 如果個數(shù)大于COUNT_NUM,則至少保存SAVE_LENGTH個塊
            if large_sample_count > self.count_num:
                save_count = self.save_length
            else: 
                save_count -= 1
            if save_count < 0:
                save_count = 0
            
            if save_count > 0:
                save_buffer.append(string_audio_data)
            else:
                if len(save_buffer) > 0:
                    self.voice_string = save_buffer
                    save_buffer = [] 
                    print("Recode a piece of  voice successfully!")
                    return True
            
            if time_count == 0: 
                if len(save_buffer) > 0:
                    self.voice_string = save_buffer
                    save_buffer = []
                    print("Recode a piece of  voice successfully!")
                    return True
                else:
                    return False
        return True




if __name__ == "__main__":
    r = GenAudio()
    r.read_audio()
    r.save_wav("./test.wav")
python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。

上述就是小編為大家分享的使用python怎么錄音麥克風并生成wav文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:使用python怎么錄音麥克風并生成wav文件-創(chuàng)新互聯(lián)
標題路徑:http://m.rwnh.cn/article17/dpecdj.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版標簽優(yōu)化、外貿網站建設、網站制作、網站設計公司、自適應網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站建設
兰溪市| 通海县| 隆尧县| 张家界市| 包头市| 新绛县| 涡阳县| 苍梧县| 岳池县| 甘洛县| 凤凰县| 西乌珠穆沁旗| 海兴县| 长子县| 呼和浩特市| 叙永县| 阿克陶县| 十堰市| 剑河县| 寿阳县| 东安县| 正宁县| 广灵县| 孝昌县| 珲春市| 隆林| 霞浦县| 大化| 科技| 崇文区| 辽中县| 嘉黎县| 临湘市| 松潘县| 蒲江县| 临邑县| 茌平县| 沙湾县| 东阳市| 绥滨县| 嘉兴市|