【Python】wav 파일을 해석해 본다(추가 플러그인 불필요 Ver)
tkInter의 캔버스를 사용하여 억지로 wav의 파형을 그립니다.
추가로 필요한 플러그인 등은 일절 없습니다.
파이썬과 재생하고 싶은 음원을 준비하기만 하면 됩니다.
※음원은 「test.wav」를 해석하도록(듯이), 이하의 프로그램은 짜고 있습니다.
파이썬
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import wave
import numpy as np
window_width = 600
window_height = 500
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry(str(window_width) + "x" + str(window_height))
# wavデータの読み込み
wav = wave.open("./test.wav")
# オーディオ部分の先頭に移動
wav.rewind()
# バイナリ読み込み
wavdata = wav.readframes(wav.getnframes())
# intに変換
wavdata = np.frombuffer(wavdata,'int16')
#
# キャンバスエリア
#
canvas = Tkinter.Canvas(root, width = window_width, height = window_height)
# X軸のステップ数
step = float(window_width)/float(wav.getnframes())
x = 0 # X軸
b_i = 0 # 一つ前の値
for c,i in enumerate(wavdata):
# 一つ前の座標をおいておく
if (c%2 == 0):
b_i = i
x = x + step
continue
# 一つ前の座標と,今回の座標を使って,波形グラフを作成
canvas.create_line(int(x), (b_i/window_height)+(window_height/2), int(x+step), (i/window_height)+(window_height/2), fill = "blue")
# X座標をstep分進める
x = x + step
print "(x,y) = ("+ str(x) +","+ str(i) +")"
#中央線
canvas.create_line(0, window_height/2, window_width, window_height/2, fill = "black")
#
# キャンバスバインド
#
canvas.place(x=0,y=0)
#
# wavをクローズ
#
wav.close()
root.mainloop()
잡으로는 있습니다만, 이런 느낌으로 출력됩니다.
Reference
이 문제에 관하여(【Python】wav 파일을 해석해 본다(추가 플러그인 불필요 Ver)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nnahito/items/c975f739d308cdf2968a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)