欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

wxpython繪制音頻效果

 更新時間:2019年11月18日 11:16:32   作者:douzujun  
這篇文章主要為大家詳細介紹了wxpython繪制音頻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了wxpython繪制音頻的具體代碼,供大家參考,具體內容如下

#-*- coding: utf-8 -*-
 
################################################################################
## 使用wxPython的繪圖模塊wxPyPlot,需要數(shù)據(jù)可視化的時候,無需再借用其他的庫或模塊了
################################################################################
import numpy as np
import wx
import wx.lib.plot as wxPyPlot # 導入繪圖模塊,并命名為wxPyPlot
import wave
import pylab as pl
# 需要把數(shù)據(jù)封裝進入MyDataObject中
def MyDataObject():
 # 50 個點的sin函數(shù),用藍色圓點表示
 data1 = 2.*np.pi*np.arange(100)/100.
 data1.shape = (50, 2)
 data1[:, 1] = np.sin(data1[:, 0])
 print ("debug:", data1.shape)
 markers = wxPyPlot.PolyMarker(data1, legend='Green Markers', colour='blue', marker='circle', size=1)
 # 50個點的cos函數(shù),用紅色表示
 data2 = 2.*np.pi*np.arange(100)/100.
 data2.shape = (50, 2)
 print ("debug: data2", len(data2))
 data2[:, 1] = np.cos(data2[:, 0])
 lines = wxPyPlot.PolySpline(data2, legend='Red Line', colour='red')
 GraphTitle = "Plot Data(Sin and Cos)"
 
 return wxPyPlot.PlotGraphics([markers, lines], GraphTitle, "X Axis", "Y Axis")
# 解析wav數(shù)據(jù)
def MyWavData(wav_filename=""):
 print('working')
 # 打開wav文檔
 file = wave.open("mic4.wav", "r")
 # 讀取格式信息
 # (nchannels, sampwidth,framerate, nframes, comptype, compname)
 params = file.getparams()
 nchannels, sampwidth, framerate, nframes = params[:4]
 print (nchannels, sampwidth, framerate, nframes)
 # 讀取波形數(shù)據(jù)
 str_data = file.readframes(nframes)
 # 文件使用完畢,關閉文件
 file.close()
 # 將波形數(shù)據(jù)裝換成數(shù)組
 wave_data = np.fromstring(str_data, dtype=np.short)
 wave_data.shape = (-1, 2)
 wave_data = wave_data.T # 矩陣轉置
 time = np.arange(0, nframes) * (1.0 / framerate)
 # print ("debug: time:", len(time))
 # print ("debug: wave_data:", len(wave_data[0][0:len(time)]))
 # print ("debug: time:", time)
 # print ("debug: wave:", wave_data)
 time_and_wav = np.asarray([time, wave_data[0][0:len(time)]]).T
 print ("debug: len of time and wav: ", len(time_and_wav))
 print ("debug: time and wav: ", time_and_wav.shape)
 lines = wxPyPlot.PolySpline(time_and_wav, legend='Blue Line', colour='blue')
 GraphTitle = "the freq of wav file"
 return wxPyPlot.PlotGraphics([lines, ], GraphTitle, "time/s", "fre/Hz")
class TestFrame1(wx.Frame):
 def __init__(self, parent=None, id=wx.ID_ANY, title="Using wxPyPlot"):
  wx.Frame.__init__(self, parent, id, title, size=(800, 600))
  # 創(chuàng)建菜單欄
  self.mainmenu = wx.MenuBar()
  # 創(chuàng)建菜單
  menu = wx.Menu()
  menu.Append(100, 'Draw1', 'Draw plots1')
  self.Bind(wx.EVT_MENU, self.OnPlotDraw1, id=100)
  menu.Append(200, 'Draw_wav', 'Draw wav')
  self.Bind(wx.EVT_MENU, self.OnPlotDraw_wav, id=200)
  # 添加菜單到菜單欄
  self.mainmenu.Append(menu, '&Plot')
  # 設置菜單Bar
  self.SetMenuBar(self.mainmenu)
  # 創(chuàng)建狀態(tài)欄,顯示信息
  self.CreateStatusBar(2)
  self.pc = wxPyPlot.PlotCanvas(self) # 此處導入繪圖面板
 
 def OnPlotDraw1(self, event):    # 繪圖函數(shù)
  self.pc.Draw(MyDataObject())
 def OnPlotDraw_wav(self, event):
  self.pc.Draw(MyWavData())
def main():
 app = wx.App()
 # MyWavData()
 tf = TestFrame1()
 tf.Show()
 app.MainLoop()
# 測試wxPyPlot的代碼
if __name__ == '__main__':
 main()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python中similarity函數(shù)實例用法

    python中similarity函數(shù)實例用法

    在本篇文章里小編給大家整理的是一篇關于python中similarity函數(shù)實例用法,有興趣的朋友們可以跟著學習下。
    2021-10-10
  • 淺談Python_Openpyxl使用(最全總結)

    淺談Python_Openpyxl使用(最全總結)

    這篇文章主要介紹了淺談Python_Openpyxl使用(最全總結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 打印tensorflow恢復模型中所有變量與操作節(jié)點方式

    打印tensorflow恢復模型中所有變量與操作節(jié)點方式

    這篇文章主要介紹了打印tensorflow恢復模型中所有變量與操作節(jié)點方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python如何使用print()函數(shù)輸出格式化字符串

    Python如何使用print()函數(shù)輸出格式化字符串

    Python中內置的%操作符和format函數(shù),都可以用于格式化字符串,下面這篇文章主要給大家介紹了關于Python如何使用print()函數(shù)輸出格式化字符串的相關資料,需要的朋友可以參考下
    2021-08-08
  • 基于python?的Pygame最小開發(fā)框架

    基于python?的Pygame最小開發(fā)框架

    這篇文章主要介紹了基于python?的Pygame最小開發(fā)框架,文章基于python的相關資料圍繞主題展開詳細內容需要的小伙伴可以參考一下
    2022-04-04
  • Python生成隨機數(shù)詳解流程

    Python生成隨機數(shù)詳解流程

    生成隨機數(shù)一般使用的就是random模塊下的函數(shù),生成的隨機數(shù)并不是真正意義上的隨機數(shù),而是對隨機數(shù)的一種模擬。random模塊包含各種偽隨機數(shù)生成函數(shù),以及各種根據(jù)概率分布生成隨機數(shù)的函數(shù)。今天我們的目標就是摸清隨機數(shù)有幾種生成方式
    2022-03-03
  • Python標準庫之sqlite3使用實例

    Python標準庫之sqlite3使用實例

    這篇文章主要介紹了Python標準庫之sqlite3使用實例,本文講解了創(chuàng)建數(shù)據(jù)庫、插入數(shù)據(jù)、查詢數(shù)據(jù)、更新與刪除數(shù)據(jù)操作實例,需要的朋友可以參考下
    2014-11-11
  • ython字符串處理實用技巧分享

    ython字符串處理實用技巧分享

    在日常編程中,字符串處理是一個非常常見的任務,因此掌握一些實用的技巧能夠提高代碼的效率和可讀性,本文將總結一些 Python 字符串處理的實用技巧,并通過代碼實例進行演示,需要的朋友可以參考下
    2024-05-05
  • Django?使用VScode?創(chuàng)建工程的詳細步驟

    Django?使用VScode?創(chuàng)建工程的詳細步驟

    這篇文章主要介紹了Django?使用VScode?創(chuàng)建工程,創(chuàng)建Django 項目,可以和虛擬環(huán)境放在同一目錄,也可以放在虛擬環(huán)境的文件夾里,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • python 實現(xiàn)圖片旋轉 上下左右 180度旋轉的示例

    python 實現(xiàn)圖片旋轉 上下左右 180度旋轉的示例

    今天小編就為大家分享一篇python 實現(xiàn)圖片旋轉 上下左右 180度旋轉的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論