From ddbc09d5d3f7081b0eb73163c041f2f7df14de17 Mon Sep 17 00:00:00 2001 From: lamipaul <paulobest25@gmail.com> Date: Wed, 23 Nov 2022 20:54:41 +0100 Subject: [PATCH] rapport2wav --- Rapport2wavs.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ RapportInfo2txt | Bin 17072 -> 17072 bytes RapportInfo2txt.c | 4 ++-- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 Rapport2wavs.py diff --git a/Rapport2wavs.py b/Rapport2wavs.py new file mode 100644 index 0000000..5497fcb --- /dev/null +++ b/Rapport2wavs.py @@ -0,0 +1,44 @@ +import numpy as np +import soundfile as sf +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument('filename') +args = parser.parse_args() + +RORQUAL_HOPSIZE, RORQUAL_WINSIZE, RORQUAL_FE = 256, 4096, 4000 +CACHA_HOPSIZE, CACHA_WINSIZE, CACHA_FE = 256, 512, 64000 +RAPPORT_FE = 128_000 +rorqual_predPos = lambda p: int(((p * RORQUAL_HOPSIZE + (RORQUAL_WINSIZE/2 + RORQUAL_HOPSIZE * 13) / 2) / RORQUAL_FE - 1) * RAPPORT_FE) +cacha_predPos = lambda p: int(((p * CACHA_HOPSIZE * 8 + (CACHA_WINSIZE + CACHA_HOPSIZE * 7 * 6) / 2) / CACHA_FE - 0.05) * RAPPORT_FE) + +file = open(args.filename, 'r') +lines = iter(file.readlines()) + +for l in lines: + if l == ' rorqual predPeaks\n': + l = next(lines) + if ',' in l: + l = next(lines) + if ',' in l: + sig = np.zeros((30 * 128_000, 5), dtype='int16') + peaks = np.array(l[:-2].split(',')).astype(int) + l = next(lines) + for p in peaks: + l = next(lines) + samples = np.array(l[:-2].split(',')).astype('int16').reshape(-1, 5) + sig[rorqual_predPos(p):rorqual_predPos(p)+256000] = samples + sf.write(f'{args.filename[:-9]}_rorqual.wav', sig, RAPPORT_FE) + if l == ' cacha predPeaks\n': + l = next(lines) + if ',' in l: + sig = np.zeros((10 * 128_000, 5), dtype='int16') + peaks = np.array(l[:-2].split(',')).astype(int) + l = next(lines) + for p in peaks: + l = next(lines) + samples = np.array(l[:-2].split(',')).astype('int16').reshape(-1, 5) + sig[cacha_predPos(p):cacha_predPos(p)+12800] = samples + sf.write(f'{args.filename[:-9]}_cacha.wav', sig, RAPPORT_FE) + +file.close() diff --git a/RapportInfo2txt b/RapportInfo2txt index eaec6d4a3e5d9220e79d216ec3cf989f36b46aaa..fe26c0854764098b3757999fa6823120478d86f0 100755 GIT binary patch delta 868 zcmdnc$_PRnj9jVg3}BGTzFCMdj7cQ*S)5ar<SG;E+zAz)dFw*f-;6rCxrX@{FXuH@ z1_qB_-gwr{^@5^|Ob#rQrwOGn-rD?IsDQEl<unEchU2a`KxVzpKkj-5%!uiBz2lL5 zqTBU~$BgdK8y?A*JTgBpbO<webYAc{_<+fS@q!2A2M@**9;_eOL8gl^c=WP%YcnwL zZ)aiR-+#fQ+x3M<ujwyt1_qDL<2yixz6ksC|9`XV9meL`J1lkcnq6-&HrCeP`2U=l zp{@h0zVq0AE(QjM7jj^QR~Y%XvpzOsV3=X)dWF9y^8f$;5LE|v@h~tj>|<mAS!}z3 zn}Okl%%A`NkGoz0S@YTw>}ro*kya4bqnGu)76Zd)egPJy&-_sbz((|%dO{t>4l?D% zzTcAtMU~k@K}K!)J=t1Rw!U2p!!KOOe)$dZ3)qS3`Vc49>;jwJd2p8ilJov>F)+OF z_zia+k>Onr4)9+f8!-ZWz7>N<FF3%TYoa?c4B3&Jet{f`8sInn8#17WcNJJ2*fY_3 z5YI%x1N?zU=kXVszhHrX{DthV|Np@e>d}0}B0Bc)gwOnPzZ}DTdTqPa7#JMGJUg#B zhI)2>bqsOr{1fWYt6QVSz!2=C`PZZQ4abZ3KQ_mUedO4r;KImt;p_kZKNuJo9KKEV zQ=F$djfH`M!Ie*-jmepp&9#}Cxr2p=odXn!3=A#|3=CTs7#J>07F2R)`SIod|H&T> zgf|x`ad1yA*R^Dd5Z}B>SC0imKQcVW#1tStd6UU9rU>!LQKs)0A58W%OXmce&%nT7 hJ^7-U_~r{{4jhbMCkxu^b47?lEQt``>}8+E3;>4JMx_7% delta 671 zcmdnc$_PRnj9gpU7{FjF+h!rgFeVX|nnNoOZ$Ivn_^qDZUTwq6lV*okZLVSd#mlM2 z%D~{!%e$UsbG@J_BU2Oe<Y_`Fj53>l3l%V?zqUK>dIMz8Yw_c*cfbsmX4gB6&9!$} z>b^C*-e7F3z48A!Geg}2k8al&9-YVbb1^V5yr}&1|9`XV6-NH;taj!M3^OcUuheXX zs5rQbhk=1%A0q?ET3db|28I{alMO{>l>M|B7(Vk0urPh*k2(NW+iSXln}NZj^Y{*s z>KC$qCKre*vv1*MV0a<?XYwpj+4^T%3=I6+S(y0uUx4a}gz5mf^~KiTaA&mXL!Ge; ztg!RoE&(KGM1#y+{`>#`<E~dgI*IeQVLb!7$4wA6io$FJdHjJ#=kXWMfBpXtvHkdq z+rR$*-vP49qxpzMbnM|YJ%0HX5TAix-USp8a=#qIeR^%J)fpHZ!#q2$Ifi<6esv6S z?EDkz(W|SY&cG1t!>Re#qxlWTi}^n{^NWAvn0$bJ!zKk6MlOY~|NsABU|^W=b+Vu0 zJk=Y_3=9med;)Du&b(}{&CJZFn0eSaz?Lz%FfcG|VPIfTm@KH|&f@Xq|NqG!4TLur zC~<I4F4whWS|PT1ldc{Mh<;>vj)`f3*yK$n%a~S(O^z~s$7nFw(=446Y(4`6gZ1Q# eX5yPKm^pATx=t3f*XLRx2C-y?*k&*LG-d$3uJQZ; diff --git a/RapportInfo2txt.c b/RapportInfo2txt.c index ca885ba..b10c2e9 100755 --- a/RapportInfo2txt.c +++ b/RapportInfo2txt.c @@ -72,7 +72,7 @@ int main(int argc, char* argv[]){ for(i=0; i<rapport.numDetectionsRorqual; i++){ for(j=0; j<RORQUAL_RAPPORT_SAMPLESPERSAMPLE; j++){ for(k=0; k<RAPPORT_CHANNELS; k++){ - // fprintf(outfile, "%hd,", rapport.samplesR[i][j][k]); + fprintf(outfile, "%hd,", rapport.samplesR[i][j][k]); } } fprintf(outfile, "\n"); @@ -89,7 +89,7 @@ int main(int argc, char* argv[]){ for(i=0; i<rapport.numDetectionsCachalot; i++){ for(j=0; j<CACHA_RAPPORT_SAMPLESPERSAMPLE; j++){ for(k=0; k<RAPPORT_CHANNELS; k++){ - // fprintf(outfile, "%hd,", rapport.samplesC[i][j][k]); + fprintf(outfile, "%hd,", rapport.samplesC[i][j][k]); } } fprintf(outfile, "\n"); -- GitLab