-1

ここに画像の説明を入力wavファイルの最高値を見つけようとしています。最初に wav を読み、次に最大値のサンプルを見つけましたが、今度はその値がどれかを知る必要があります。wavファイルはアップロードできませんが、どなたでもお試しいただけます。

import matplotlib.pyplot as plt
import numpy as np
import wave
import sys


spf1 = wave.open('C:/Users/Martinez/Documents/Diego/Facultad/Proyecto Final/Mediciones Cubo/5 sentado/Lado 1_5 sentado.wav','r')

#Extract Raw Audio from Wav File
signal1 = spf1.readframes(-1)
signal1 = np.fromstring(signal1, 'Int16')

fs1 = spf1.getframerate()

#If Stereo
if spf1.getnchannels() == 2:
    print 'Just mono files'
    sys.exit(0)
#print np.arange(signal)
m_x = abs(signal1).argmax()
m_y = abs(signal1).max()

print m_x
print m_y

Time=np.linspace(0, len(signal1)/float(fs1), num=len(signal1))

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.vlines(Time[m:], [0], abs(signal1)[m:] )
#ax1.plot(Time[m:], abs(signal1[m:]), 'r')
ax1.grid(True)
ax1.axhline(color='black', lw=2)

plt.show()
4

1 に答える 1

1

signal1反復可能な数値 (または並べ替え可能なもの) の場合、最大max(signal1)値が得られます。これらの項目を数値に変換する必要がある場合は、key引数:を使用しますmax(signal1, key=abs)

于 2013-11-01T20:10:40.423 に答える