簡體   English   中英

為什么我用python寫一個wav文件卻沒有聲音播放

[英]why I write a wav file in python but playing with no sound

我編寫了具有int32數據類型的WAV文件,采樣率為11025,但播放時輸出的WAV文件沒有聲音。

from scipy.io.wavfile import read
rate, data0 = read('001.wav') #rate type is int     
data = numpy.asarray(data0,dtype=theano.config.floatX)  
for ffp in data:                    
    print data[ffp]

使用此代碼,我們可以清楚地看到普通的wav文件。 這是一些整數序列:

-23.0 -51.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.0 -17.0 39.0 253.0 -266.0 -146.0 -146.0 -56.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 43.0 177.0 -428.0 455.0 -236.0 -325.0 113.0 237.0 121.0 82.0 352.0 139.0 0.0 0.0 2.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 214.0 160.0 -733.0 -501.0 844.0 -446.0 -8.0 28.0 0.0 -1.0 -170.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -1.0 0.0 0.0 0.0 -2.0 184.0 51.0 -330.0 -80.0 416.0 -121.0 -498.0 192.0 148.0 0.0 0.0 -1.0 0.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 0.0 112.0 -171.0 -253.0 -49.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -24.0 0.0 0.0 -101.0 -142.0 -476.0 -212.0 -377.0 329.0 44.0 -38.0 246.0 0.0 0.0 7.0 315.0 189.0 67.0 28.0 97.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 120.0 54.0 0.0

而這個正在播放沒有聲音的wav文件:

    from scipy.io.wavfile import write

    wavfiles = []

    for fr in range(wavfile.size/11025):
        for fn in range(wavfile[fr].size):
            wavfile[fr][fn] = int(wavfile[fr][fn])                                              
        wavfiles0 = numpy.asarray(wavfile[fr],dtype='int32')
        wavfiles.append(wavfiles0)

    wavfiles_ = numpy.vstack(wavfiles)        
    wavfiles2 = wavfiles_.ravel()
    filename = 'test01.wav'           
    write(filename, 11025, wavfiles2)
    for ffp in wavfiles2:                    
        print wavfiles2[ffp]

我們可以看到以下整數序列:

-429 -288 -725 -1264 486 326 -639 -695 -632 -742 532 1063 671 71 -613 73 807 195 496 -422 -74 -564 884 -1196 558 -106 -667 975 -546 -178 -1253 -279 1021 -549 38 304 -278 -950 -264 -88 621 -460 78 -138 450 -191 370 123 599 -858 -860 95 -204 -285 -210 441 294 -225 -109 -26 -1267 -199 -950 -369 -232 348 -528 -13 495 -554 -542 1066 159 -176 -282 -1240 -298 -1304 -883 309 -574 519 -149 271 -562 -1107 -248 -161 100 -165 109 105 -267 -801 8 -346 -1065 -198 394 -538 32 -41 73 -209 -1095 1508 -520 37 139 450 -335 -60 -225 499 -63 991 -702 -733 702 -480 -828 -447 -803 978 -439 663 636 -513 42 -100 388 945 364 590 -142 1127 -950 -1052 1122 213 -94 -722 -63 -601 323 509 -692 -446 -393 -496 940 -761 311 -643 -144 -280 -162 383 -828 -198 -361 -61 -1035 -246 1167 -29 27 246 1063 -88 192 -1481 -524 457 -205 453 -198 499 -33 30 438 72 198 -17 -303 532 -282 738 712 -963 198 53 623 708 879 398 388 954 -177 -549 165 116 -359 147 410 -69 615 240 168 -745 -83 125 -858 847 930 142 -1127 465 1535 1054 -1229 711 295 266 38 146 -701 -345 -74 241 164 102 -684 -339 130 -883 -1442 -1196 124 -649 -15 -376 776 -559 73 940 -419 -48 617 20 -515 179 -1065 157 -497 202 282 -6 -104 -267 343 489 236 722 -320 1007 -466 -129 807 487 -674 -627 170 256 -856 -629 -166 -1390 1184 -303 179 -447 482 303 -502 -52 -137 395 109 280 1147 159 243 118 531 -70 -564 562 491 38 -74 -826 -63 -1276 329 -43 -41 -587 -193 -43 -52 949 -258 -446 -460 -258 332 -580 -514 -898 294 -883 -377 -428 48 0 411 970 146 410 -183 -161 -177 38 67 346 -447 -217 -998 580 -165 411

是什么原因導致這種無聲音播放錯誤。

如果整數序列不是普通的wav文件數據序列,是因為零序比普通的1小?

我正在做的是學習音樂,例如將30首歌曲合並為一首歌曲,但是當我播放自己創作的一首歌曲時,沒有聲音。 尋求幫助,謝謝。

我沒有scipy.io.wavfile的經驗。

但是,如果音頻數據為int32,則意味着動態范圍應跨度[2147483648 ..- 2147483647],這將使值1063的幅度為4.95e-07,即使您的硬件可以准確地呈現,也應該聽不見。它。

您的采樣率也讓我感到困惑。 以每秒11025個樣本的速度,您顯示的160個樣本(假設一個通道的音頻)將產生14毫秒的聲音。 聲音即使很短,即使您能聽到它的振幅,也幾乎在開始播放之前就結束了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM