From 7bc210bebc0487f554b2c207a29a301f9bfd7464 Mon Sep 17 00:00:00 2001 From: padster06 Date: Wed, 27 Jul 2022 15:37:22 +0100 Subject: [PATCH 1/4] chnaged the function feature_window to keep the chunks in the same order so that live streaming becomes more possible since the audio in the array feature is kept chronilogical --- allosaurus/.swo | Bin 0 -> 12288 bytes allosaurus/.swp | Bin 0 -> 12288 bytes allosaurus/app.py | 5 +++++ allosaurus/audio.py | 10 +++------- allosaurus/pm/mfcc.py | 4 +--- allosaurus/pm/utils.py | 14 ++++++++++++++ 6 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 allosaurus/.swo create mode 100644 allosaurus/.swp diff --git a/allosaurus/.swo b/allosaurus/.swo new file mode 100644 index 0000000000000000000000000000000000000000..511ae1a1f845bc4a7c32892e2f8dd9540fa78e9f GIT binary patch literal 12288 zcmeI2dB~mT-c)9xM9*3rX9j&5yTwRPy=RmYEQdhY*y>5DFGJ^S@}&(7z! z7svY#SpH^FU{T-!puozcGA4zt@HPe`+U#Mr`c?t(ku+wcXr0X__Ghu6YkxD@t7ho``9*ad$-ZJPc7zknaY*Wfd7J-i>@46laE z;X-&8MA!po!6|U}!=~xC@Kd-IZibuSI(QFU4OhTr@B(-`?1L4Y2|M7gyQb;aa3|aX zUxXXsT6hP%4vxUfU_YD#d*Ly#3+{dBH2o2N2|t3b!)M{+@Bw%W9D_sfQg{v&coIAc zPKA4RPSfw;XYhUa3VaGa3h#wC!cll7ybzuN9#(KBoCJS6m2<$I@E!OP+z8jgJK^cr2U-|9HqW{Rw^rx4}2zbMOiHAiNch!xmf&=Rt)h!=qs*+;hq_{T_Y} zKY*{or{QDpKDY+1goE%BcqT;H182d>aQDgh6n+BVgPY+dxDMV8SHl%>04{)Y!NJ*Z zI{fp&)AVP!3vP#R!RO%y_z=7eUIT~W5_m3jcq;6MT`+QmF#nG~A}%KhxwN>o_F*ON zzx}hSu6L=vrp}IW#g?T;??Wr2z4mVWc>8Sa^?o{W$aJ42=>GRJOx4xcQz+f*k*4BW zElFyry8gs(6opv5uSG^XyIg$=L9{ze-L)ba>gd(Tpy&P-_&OEYpg$ za|t0w>t2hiHMCqfhDnsWFTs1=IfD=oPylnJ$){ z^b%^TDiNnfqnKhTN%sy@aOfkxB{Pj)4$(>`qG0n5nLLfCMk?# zB?2RfkHOYrG)DUtP5Ftm@I{JnzHd~zcg)nQnmNAy8~I$(Tw_ZG;WZB5rEJaV36o;C5MMBHi3<`9guk8zA9IU>2#TOD?-vpS~=w$76onJTKx zqe~=weKu!M5b(?#B_lby4kto4mZTaZ#+lv$!x&%C+fGHWryR3|$%^joeM%$d^w5zC z(8#`dbW9w?D#GY33BkR^0f$Ddh-nrG!BI+)uiDxw$*H1(k}i2~o;o zB~vZjDOI5aip2Kh5Qq$++G{pw324NBHOp{bPdJyWNVg(liSn<;(c~S!dCJ{laY2x^?y+M#cgWgQ`*3E!kkG3NY)j+2N(_{e*15@Ds8n zI}BwrZa@=(RH1xPM73EdFZ@KAUCaH+B}UwsghZ9^mBcg4xT(1&N}~p-f?70lU^UC) zRppe#Z=2&rORnCDv!@C7*tw~>ILr`=HC46pZmv(fqe{?WqMd_c--(2f?9{xBc>C~ViQA=2>pMk<$@-)~BJ`VMusGfaDyUT-!UV@N zzL=rB0<_!^c*By6At4jN76tjUt}6*1TEhcZY-8>=i9$Bo%)Fu~&;947uWE`<3^{sZ3 z^qo+!2-arct{jP`y~y8t5S|%hFs`nJ^uW^5rXmoO6nypFc>gh%f?}u8%a)+y(Pfi6 znT8{C)x{!NOCchz#w#}>H?Lv!q>heAp!r@Jc{d)=_L#|Gl#i%p`=YNfTZ=b>I!dG6 qmL@^T!y!SMc(zihd8m$K#Oa(T9@}@|*nz!!_U+r^**|}VBmM;r&iU;C literal 0 HcmV?d00001 diff --git a/allosaurus/.swp b/allosaurus/.swp new file mode 100644 index 0000000000000000000000000000000000000000..367c110310ec12251551a1f86581131833e9c09e GIT binary patch literal 12288 zcmeI2ZOGEW!oH=J+AqpxGizqcsNsu)kL;|Z-i0FgVhlq&i zg(3=iBO>|`6%o;gC@=ycD%uc?%BTo}h)4;7sNb2H`(a(bm%{&Eu6>xDnKS2H=Q?NR zVedP_&DXtg*L-w*o@;;2&#Rty!X4dn*WLFV9i2J4^Yoef?mf&r@#igXzOnTj_Se2H zzrJ0sPh7D5%f`UQz>|Q1lQ*fvV2)gM`Y13a$c|gHzx_@Yr*ldldW${1N;LoCQAy-vwUk{Yw0v-kr zg71T`gU^BwgZF`VfVY7+fLDT7fER*Gz`vj6++V?Oz)!&sz&F6>!AHUU;GN)h@FwtT za1D4dxD@>7na=$U{0{sK{1AK-d=Y#MydS(9oCeo}*MQ5wFHbu6N$?hMIXHW<+E6U2QBj-%8AcmWMUAOBM;u4v)LNcr7vN+|D@qSX)oEwz)m|5V4=KZI6!mTBYTJ zb61D3+cBSuNY*s%sZUL6)oA;1FJZq)Y-P-k{jm^Qp8NOeCFN3^_F)hE8rhH}AI7>}fIl+k-jQp*^->{G@yj-1o#HP?c<6-@UkrF7CW=P`%pq3OuA zQ=g$dbf{dZ%Mof?SiwXuU0Wj^(;L?Zm3oVQ+N=M-@UH4Mo+~JB~|Ll@pG+?`9C;9*!#{atViM=s-$UggjDcrE0V5%PLijiV|WY)H8Nsu3w>KP~Knmr>T z9M#%uAQ+>XU_uT#rm$46WVVsagD#ERk?YZ-OgP%IYJ=+~JeprrI^wjKiLOTFGspBO zPUrZUI`#`nm6&Ibpvq#jhCP&lKPEh=EV6o%_=J17Fmp%I7UQz7mP5bA75rbzsrhKa zIn)6y4WV1%&fJj;WLc>5;lAab)J5U87~v4UB9%x_v9Z;O)s4`DEcbLkx+_iLSh!gm zsUOGTJzw^usB8G2@2*zF>Mb|U@X>V{-hDMDkI>zSt`R~o~pD`!RDD1>Q2)hW0HwV=9HNJ8~De?2yhR6Xk?nslpWvH$68=X>9BdpF{M`28Ja1jv#l{?Jg zJVNQbB&PM|Qwr#;j|S`PrVddG-cEBUA=3e6-rS?bara_lrJB@OOKY-@x63Z@E}&{h zG}e?_JybQirGIjDwYA*dF`5&VHrzpoRH3#$8?=>$y#gw2VVbk`aLYq$x?jyaFBx4* zVx>0u$fK_qnWOCJQGzVE&1W<`tBftKxM?3{QT2&6 zbDs06a61w0k_z3B4p~-RBwrFYEluxWkBfB>IM(wlV&2*i(?pL@X`!Lk@rblBI?j~w zVuzL*lV)Nb>+Pymu3KIXww?QeTvFo}tniB_T-8XX=W2vXq%~Qp$2>*dk;c@uz43&5 za}?p2CKbI)Dp=MjUy5{a Vk({*@ZUSDkBN}y&`^_S_{{q(l+g< Date: Wed, 27 Jul 2022 16:16:47 +0100 Subject: [PATCH 2/4] added back in the resampy code] --- .gitignore | 6 +++++- allosaurus/.swo | Bin 12288 -> 0 bytes allosaurus/.swp | Bin 12288 -> 0 bytes allosaurus/app.py | 7 +------ allosaurus/audio.py | 10 +++++++--- 5 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 allosaurus/.swo delete mode 100644 allosaurus/.swp diff --git a/.gitignore b/.gitignore index c10978e..a246ad8 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,7 @@ coverage.xml *.py,cover .hypothesis/ .pytest_cache/ +allosaurus/pm/test.py # Translations *.mo @@ -125,9 +126,12 @@ venv.bak/ .dmypy.json dmypy.json +# audio files +allosaurus/*.wav + # Pyre type checker .pyre/ .idea/ allosaurus/pretrained/* allosaurus.egg-info -test_model/* \ No newline at end of file +test_model/* diff --git a/allosaurus/.swo b/allosaurus/.swo deleted file mode 100644 index 511ae1a1f845bc4a7c32892e2f8dd9540fa78e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2dB~mT-c)9xM9*3rX9j&5yTwRPy=RmYEQdhY*y>5DFGJ^S@}&(7z! z7svY#SpH^FU{T-!puozcGA4zt@HPe`+U#Mr`c?t(ku+wcXr0X__Ghu6YkxD@t7ho``9*ad$-ZJPc7zknaY*Wfd7J-i>@46laE z;X-&8MA!po!6|U}!=~xC@Kd-IZibuSI(QFU4OhTr@B(-`?1L4Y2|M7gyQb;aa3|aX zUxXXsT6hP%4vxUfU_YD#d*Ly#3+{dBH2o2N2|t3b!)M{+@Bw%W9D_sfQg{v&coIAc zPKA4RPSfw;XYhUa3VaGa3h#wC!cll7ybzuN9#(KBoCJS6m2<$I@E!OP+z8jgJK^cr2U-|9HqW{Rw^rx4}2zbMOiHAiNch!xmf&=Rt)h!=qs*+;hq_{T_Y} zKY*{or{QDpKDY+1goE%BcqT;H182d>aQDgh6n+BVgPY+dxDMV8SHl%>04{)Y!NJ*Z zI{fp&)AVP!3vP#R!RO%y_z=7eUIT~W5_m3jcq;6MT`+QmF#nG~A}%KhxwN>o_F*ON zzx}hSu6L=vrp}IW#g?T;??Wr2z4mVWc>8Sa^?o{W$aJ42=>GRJOx4xcQz+f*k*4BW zElFyry8gs(6opv5uSG^XyIg$=L9{ze-L)ba>gd(Tpy&P-_&OEYpg$ za|t0w>t2hiHMCqfhDnsWFTs1=IfD=oPylnJ$){ z^b%^TDiNnfqnKhTN%sy@aOfkxB{Pj)4$(>`qG0n5nLLfCMk?# zB?2RfkHOYrG)DUtP5Ftm@I{JnzHd~zcg)nQnmNAy8~I$(Tw_ZG;WZB5rEJaV36o;C5MMBHi3<`9guk8zA9IU>2#TOD?-vpS~=w$76onJTKx zqe~=weKu!M5b(?#B_lby4kto4mZTaZ#+lv$!x&%C+fGHWryR3|$%^joeM%$d^w5zC z(8#`dbW9w?D#GY33BkR^0f$Ddh-nrG!BI+)uiDxw$*H1(k}i2~o;o zB~vZjDOI5aip2Kh5Qq$++G{pw324NBHOp{bPdJyWNVg(liSn<;(c~S!dCJ{laY2x^?y+M#cgWgQ`*3E!kkG3NY)j+2N(_{e*15@Ds8n zI}BwrZa@=(RH1xPM73EdFZ@KAUCaH+B}UwsghZ9^mBcg4xT(1&N}~p-f?70lU^UC) zRppe#Z=2&rORnCDv!@C7*tw~>ILr`=HC46pZmv(fqe{?WqMd_c--(2f?9{xBc>C~ViQA=2>pMk<$@-)~BJ`VMusGfaDyUT-!UV@N zzL=rB0<_!^c*By6At4jN76tjUt}6*1TEhcZY-8>=i9$Bo%)Fu~&;947uWE`<3^{sZ3 z^qo+!2-arct{jP`y~y8t5S|%hFs`nJ^uW^5rXmoO6nypFc>gh%f?}u8%a)+y(Pfi6 znT8{C)x{!NOCchz#w#}>H?Lv!q>heAp!r@Jc{d)=_L#|Gl#i%p`=YNfTZ=b>I!dG6 qmL@^T!y!SMc(zihd8m$K#Oa(T9@}@|*nz!!_U+r^**|}VBmM;r&iU;C diff --git a/allosaurus/.swp b/allosaurus/.swp deleted file mode 100644 index 367c110310ec12251551a1f86581131833e9c09e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2ZOGEW!oH=J+AqpxGizqcsNsu)kL;|Z-i0FgVhlq&i zg(3=iBO>|`6%o;gC@=ycD%uc?%BTo}h)4;7sNb2H`(a(bm%{&Eu6>xDnKS2H=Q?NR zVedP_&DXtg*L-w*o@;;2&#Rty!X4dn*WLFV9i2J4^Yoef?mf&r@#igXzOnTj_Se2H zzrJ0sPh7D5%f`UQz>|Q1lQ*fvV2)gM`Y13a$c|gHzx_@Yr*ldldW${1N;LoCQAy-vwUk{Yw0v-kr zg71T`gU^BwgZF`VfVY7+fLDT7fER*Gz`vj6++V?Oz)!&sz&F6>!AHUU;GN)h@FwtT za1D4dxD@>7na=$U{0{sK{1AK-d=Y#MydS(9oCeo}*MQ5wFHbu6N$?hMIXHW<+E6U2QBj-%8AcmWMUAOBM;u4v)LNcr7vN+|D@qSX)oEwz)m|5V4=KZI6!mTBYTJ zb61D3+cBSuNY*s%sZUL6)oA;1FJZq)Y-P-k{jm^Qp8NOeCFN3^_F)hE8rhH}AI7>}fIl+k-jQp*^->{G@yj-1o#HP?c<6-@UkrF7CW=P`%pq3OuA zQ=g$dbf{dZ%Mof?SiwXuU0Wj^(;L?Zm3oVQ+N=M-@UH4Mo+~JB~|Ll@pG+?`9C;9*!#{atViM=s-$UggjDcrE0V5%PLijiV|WY)H8Nsu3w>KP~Knmr>T z9M#%uAQ+>XU_uT#rm$46WVVsagD#ERk?YZ-OgP%IYJ=+~JeprrI^wjKiLOTFGspBO zPUrZUI`#`nm6&Ibpvq#jhCP&lKPEh=EV6o%_=J17Fmp%I7UQz7mP5bA75rbzsrhKa zIn)6y4WV1%&fJj;WLc>5;lAab)J5U87~v4UB9%x_v9Z;O)s4`DEcbLkx+_iLSh!gm zsUOGTJzw^usB8G2@2*zF>Mb|U@X>V{-hDMDkI>zSt`R~o~pD`!RDD1>Q2)hW0HwV=9HNJ8~De?2yhR6Xk?nslpWvH$68=X>9BdpF{M`28Ja1jv#l{?Jg zJVNQbB&PM|Qwr#;j|S`PrVddG-cEBUA=3e6-rS?bara_lrJB@OOKY-@x63Z@E}&{h zG}e?_JybQirGIjDwYA*dF`5&VHrzpoRH3#$8?=>$y#gw2VVbk`aLYq$x?jyaFBx4* zVx>0u$fK_qnWOCJQGzVE&1W<`tBftKxM?3{QT2&6 zbDs06a61w0k_z3B4p~-RBwrFYEluxWkBfB>IM(wlV&2*i(?pL@X`!Lk@rblBI?j~w zVuzL*lV)Nb>+Pymu3KIXww?QeTvFo}tniB_T-8XX=W2vXq%~Qp$2>*dk;c@uz43&5 za}?p2CKbI)Dp=MjUy5{a Vk({*@ZUSDkBN}y&`^_S_{{q(l+g< Date: Wed, 27 Jul 2022 16:20:01 +0100 Subject: [PATCH 3/4] fixed typos --- allosaurus/audio.py | 6 +++--- allosaurus/pm/mfcc.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/allosaurus/audio.py b/allosaurus/audio.py index 51f5fd8..200f869 100644 --- a/allosaurus/audio.py +++ b/allosaurus/audio.py @@ -64,10 +64,10 @@ def resample_audio(audio, target_sample_rate): if audio.sample_rate == target_sample_rate: return audio - new_samples = resampy.resa(audio.samples, audio.sample_rate, target_sample_rate) - + new_samples = resampy.resample(audio.samples, audio.sample_rate, target_sample_rate) + new_audio = Audio(new_samples, target_sample_rate) - + return new_audio diff --git a/allosaurus/pm/mfcc.py b/allosaurus/pm/mfcc.py index c44451c..9540091 100644 --- a/allosaurus/pm/mfcc.py +++ b/allosaurus/pm/mfcc.py @@ -55,7 +55,8 @@ def compute(self, audio): """ # make sample rate consistent - + audio = resample_audio(audio, self.sample_rate) + # validate sample rate assert self.config.sample_rate == audio.sample_rate, " sample rate of audio is "+str(audio.sample_rate)+" , but model is "+str(self.config.sample_rate) From 8a55f103a02b8049eb9df0c9b3949adcff667e61 Mon Sep 17 00:00:00 2001 From: padster06 Date: Wed, 27 Jul 2022 16:36:01 +0100 Subject: [PATCH 4/4] created desc of functions --- allosaurus/pm/utils.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/allosaurus/pm/utils.py b/allosaurus/pm/utils.py index 9ba5c21..132efb0 100644 --- a/allosaurus/pm/utils.py +++ b/allosaurus/pm/utils.py @@ -13,6 +13,15 @@ def feature_cmvn(feature): def feature_window(feature, window_size=3): + """ + chunks a given array based on the window_size (3) so the length of the 2nd dimensions is 3x the original. + given [[1 2 3] + [3 4 5] + [6 7 8]] + it turns into + [[6 7 8 1 2 3 3 4 5]] + the function rolls the array so that the last is at the start and the first is at the end. it concatonates them and then removes the repeated elements. This creates and offset and aligns the audio data so that it is not out of time with the phones + """ assert window_size == 3, "only window size 3 is supported" @@ -22,6 +31,18 @@ def feature_window(feature, window_size=3): return feature def feature_window_ordered(feature, window_size=3): + """ + chunks a given 2D array (feature) into a different 2D array of with a shfted array where the 2nd dimension is 3x the original length + e.g. given + [[1, 2, 3], + [3, 4, 5], + [6, 7, 8]] + to + [[1, 2, 3, 1, 2, 3, 3, 4, 5], + [6, 7, 8, 6, 7, 8, 6, 7, 8]] + + it repeats the first element (in this case 1, 2, 3) in order to shift the remaining elements so that it lines up the timing for the phones to be decoded + """ assert window_size == 3, "Window_size must equall 3" shape = feature.shape