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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></span></p><p class=3DMsoNormal><o:p>&nbsp;</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==--