akjsnack
The Snack Sound Toolkitの、フォルマンと取得、ピッチ取得・スペクトログラム取得の機能を
akJのソフトから使うために、exe化したもの - 用途があればご自由に改造・再配布してください。
ライセンスはApache2.0とします。
pitch2.exe - ピッチを取得
formant.exe - フォルマントとを取得
spectram.exe - スペクトラグラムを取得
スクリプトの中身
これらのexeはpythonスクリプトから変換して作りました。
pitch2.exe
#! /usr/bin/env python from Tkinter import * from tkSnack import * root = Tkinter.Tk() initializeSnack(root); import sys; length=len(sys.argv); if length>1: path=sys.argv[1]; else: print "pitch2.py input [start end min max framelength]"; sys.exit(); if length>2: startsample=int(sys.argv[2]); else: startsample=0; if length>3: endsample=int(sys.argv[3]); else: endsample=0; if length>4: min=int(sys.argv[4]); else: min=60; if length>5: max=int(sys.argv[5]); else: max=600; if length>6: flength=float(sys.argv[6]); else: flength=0.01; #guess min is 0.01 if(flength>0.01): flength=0.01; mysound=Sound(load=path); mysound.convert(encoding='Lin16',channels='1'); if endsample == 0: endsample=mysound.length(); elif endsample <0: endsample=mysound.length()+endsample; #print endsample; #framelength=0.01, 0.1 has error #windowlength=0.025,0 has error resultList=mysound.pitch(method='ESPS',framelength=flength,minpitch=min,maxpitch=max,start=startsample,end=endsample); for i in resultList: print i;
spectram.exe
#! /usr/bin/env python from Tkinter import * from tkSnack import * root = Tkinter.Tk() initializeSnack(root); import sys; path=sys.argv[1]; height=int(sys.argv[2])*2; persample=float(sys.argv[3]); startValue=int(sys.argv[4]); endValue=int(sys.argv[5]); #print(path); mysound=Sound(load=path); #mysound.convert(encoding='Lin16',channels='1'); #resultList=mysound.dBPowerSpectrum(fftlength='64',windowlength='64',start=startValue,end=endValue); #resultList=mysound.dBPowerSpectrum(fftlength='64',windowlength='64',start=startValue); v=startValue; filelength=mysound.length(); if endValue==0: endValue=filelength; prevValue=0; while v < filelength : #print "ok"; at=int(v); resultList=mysound.dBPowerSpectrum(fftlength=height,windowlength=height,start=at); for i in resultList: intV=int(i); print prevValue-intV; prevValue=intV; v=v+persample; #print v; if v+height>=endValue: break;
formant.exe
#! /usr/bin/env python from Tkinter import * from tkSnack import * root = Tkinter.Tk(); initializeSnack(root); import sys; path=sys.argv[1]; startsample=int(sys.argv[2]); endsample=int(sys.argv[3]); #startsample=0; #endsample=0; #endsample=430; #should bigger 1024 like 2048. #mysound=Sound(file=path); #formant only work memory. mysound=Sound(load=path); #mysound.convert(encoding='Lin16',channels='1'); #sample like 11025 if endsample == 0: endsample=mysound.length(); elif endsample <0: endsample=mysound.length()+endsample; #print endsample; resultList=mysound.formant(framelength='0.01',start=startsample,end=endsample); #print len(resultList); for i in resultList: print i;
サイト
Android情報サイト
|
Youtube サイト
| Java サイト
| Google 活用サイト
| Google 情報サイト
| 無料ソフト活用 サイト
|写真活用のPicasa2 サイト
|新サイト
Blog
Android ブログ
Copyright (c)2004 - 2012 Aki. All rights reserved.