Echo cancellation - usage & porting to MIPS32 architecture
<[email protected]> Tue, 25 Apr 2017 10:28:21 +0300
| Newsgroups | gmane.comp.audio.compression.speex.devel |
|---|---|
| Message-ID | <[email protected]> |
--===============1075957621942831777== Content-Type: multipart/alternative; boundary="_7EE85EBD-263A-47D1-B89D-25B49D5AC34B_" --_7EE85EBD-263A-47D1-B89D-25B49D5AC34B_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Dear manager, Our company is developing embedded product, which requires echo cancellatio= n. We found the speex license is open source under GPL, so we can use the l= ibrary source code. I am struggling to port the echo cancellation part to MICROCHIP PIC32MZ fam= ily, which is based on M14K core from MIPS. The compiler is MICROCHIP XC32 = C compiler. Do you have kind of support for this project for porting to new architectur= es, and then add the already supported architecture to the main project. I presume if you can offer support to port the library to MIPS32, then we c= an provide the project and you can include into the main branch. Also if not possible, can we ask for some info during the porting, currentl= y we have the following issues: - There are many variables of =E2=80=9Cint=E2=80=9D type. Is this type sign= ed 32bit integer? - Do you have some test data, how the echo cancellation algorithm should be= have? It will be perfect if we can use it to debug the behavior of all algo= rithm blocks separately? - In my project I use the onboard ADC to take samples from the MIC every 12= 5uS (8KHz sampling rate) and PWM to output data to the speaker every 125uS.= When I collect full frame from the Microphone, I pass trough the EC algori= thm. Due to I need the speaker data of the same period, do I need to get ea= rlier speaker data (for example 20-30 samples before the frame period in or= der the signal to be valid). In general if you can help with info how to test and debug all blocks separ= ately, we can port the entire EC algorithm and then I can send back the pro= ject, so you can include in the main branch, it will be tested and working. Thank you in advance Kind regards Dimitar Belev Soneco LTD Mob: +359877398772 [email protected] www.soneco.bg --_7EE85EBD-263A-47D1-B89D-25B49D5AC34B_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8" <html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc= hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of= fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta ht= tp-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta name= =3DGenerator content=3D"Microsoft Word 15 (filtered medium)"><style><!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} .MsoChpDefault {mso-style-type:export-only;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:401491138; mso-list-type:hybrid; mso-list-template-ids:909513468 -1 67698691 67698693 67698689 67698691 676= 98693 67698689 67698691 67698693;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:-; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Calibri",sans-serif; mso-fareast-font-family:"Times New Roman";} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l1 {mso-list-id:1026250595; mso-list-type:hybrid; mso-list-template-ids:-2069087324 -1 67698713 67698715 67698703 67698713 6= 7698715 67698703 67698713 67698715;} @list l1:level1 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level2 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l1:level4 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level5 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l1:level7 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level8 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l1:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --></style></head><body lang=3DBG link=3Dblue vlink=3D"#954F72"><div class= =3DWordSection1><p class=3DMsoNormal><span lang=3DEN-US>Dear manager,<o:p><= /o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></= span></p><p class=3DMsoNormal><span lang=3DEN-US>Our company is developing = embedded product, which requires echo cancellation. We found the speex lice= nse is open source under GPL, so we can use the library source code.<o:p></= o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></s= pan></p><p class=3DMsoNormal><span lang=3DEN-US>I am struggling to port the= echo cancellation part to MICROCHIP PIC32MZ family, which is based on M14K= core from MIPS. The compiler is MICROCHIP XC32 C compiler.<o:p></o:p></spa= n></p><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p><= p class=3DMsoNormal><span lang=3DEN-US>Do you have kind of support for this= project for porting to new architectures, and then add the already support= ed architecture to the main project.<o:p></o:p></span></p><p class=3DMsoNor= mal><span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><sp= an lang=3DEN-US>I presume if you can offer support to port the library to M= IPS32, then we can provide the project and you can include into the main br= anch.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nb= sp;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US>Also if not pos= sible, can we ask for some info during the porting, currently we have the f= ollowing issues:<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-= US><o:p> </o:p></span></p><ul style=3D'margin-top:0cm' type=3Ddisc><li= class=3DMsoListParagraph style=3D'margin-left:0cm;mso-list:l0 level1 lfo2'= ><span lang=3DEN-US>There are many variables of =E2=80=9Cint=E2=80=9D type.= Is this type signed 32bit integer?<o:p></o:p></span></li><li class=3DMsoLi= stParagraph style=3D'margin-left:0cm;mso-list:l0 level1 lfo2'><span lang=3D= EN-US>Do you have some test data, how the echo cancellation algorithm shoul= d behave? It will be perfect if we can use it to debug the behavior of all = algorithm blocks separately?<o:p></o:p></span></li><li class=3DMsoListParag= raph style=3D'margin-left:0cm;mso-list:l0 level1 lfo2'><span lang=3DEN-US>I= n my project I use the onboard ADC to take samples from the MIC every 125uS= (8KHz sampling rate) and PWM to output data to the speaker every 125uS. Wh= en I collect full frame from the Microphone, I pass trough the EC algorithm= . Due to I need the speaker data of the same period, do I need to get earli= er speaker data (for example 20-30 samples before the frame period in order= the signal to be valid).<o:p></o:p></span></li></ul><p class=3DMsoNormal><= span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span la= ng=3DEN-US>In general if you can help with info how to test and debug all b= locks separately, we can port the entire EC algorithm and then I can send b= ack the project, so you can include in the main branch, it will be tested a= nd working.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o= :p> </o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nbs= p;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US>Thank you in adv= ance<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nbs= p;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US>Kind regards<o:p= ></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p>= </span></p><p class=3DMsoNormal><span lang=3DEN-US>Dimitar Belev<o:p></o:p>= </span></p><p class=3DMsoNormal><span lang=3DEN-US>Soneco LTD<o:p></o:p></s= pan></p><p class=3DMsoNormal><span lang=3DEN-US>Mob: +359877398772<o:p></o:= p></span></p><p class=3DMsoNormal><span lang=3DEN-US><a href=3D"mailto:dimi= [email protected]">[email protected]</a><o:p></o:p></span></p><p cl= ass=3DMsoNormal><span lang=3DEN-US><a href=3D"http://www.soneco.bg">www.son= eco.bg</a><o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:= p> </o:p></span></p><p class=3DMsoNormal><o:p> </o:p></p></div></= body></html>= --_7EE85EBD-263A-47D1-B89D-25B49D5AC34B_-- --===============1075957621942831777== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU3BlZXgtZGV2 IG1haWxpbmcgbGlzdApTcGVleC1kZXZAeGlwaC5vcmcKaHR0cDovL2xpc3RzLnhpcGgub3JnL21h aWxtYW4vbGlzdGluZm8vc3BlZXgtZGV2Cg== --===============1075957621942831777==--