91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么錄音麥克風并生成wav文件

發布時間:2021-05-20 16:35:40 來源:億速云 閱讀:514 作者:Leah 欄目:開發技術

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

如下所示:

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個取樣之內出現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)     
            # 將讀入的數據轉換為數組
            audio_data = np.fromstring(string_audio_data, dtype = np.short)
            #計算大于 level 的取樣的個數
            large_sample_count = np.sum(audio_data > self.level)
            
            print(np.max(audio_data)),  "large_sample_count=>", large_sample_count

            # 如果個數大于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是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

上述就是小編為大家分享的使用python怎么錄音麥克風并生成wav文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临高县| 安顺市| 龙南县| 绩溪县| 岳西县| 家居| 文化| 商洛市| 汶川县| 昌都县| 沅陵县| 德惠市| 高邮市| 佛山市| 阜城县| 湟源县| 胶州市| 唐河县| 工布江达县| 铁力市| 黔西| 竹山县| 清新县| 剑河县| 平遥县| 安陆市| 西昌市| 合阳县| 乐至县| 德兴市| 富锦市| 酉阳| 罗定市| 揭西县| 永兴县| 武川县| 蕉岭县| 德保县| 东安县| 高尔夫| 信阳市|