<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OPUS decoder</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/33414/opus-decoder</link><description>Hi, I was recently asking about OPUS - https://devzone.nordicsemi.com/f/nordic-q-a/32875/how-compile-opus/128181#128181 . Now I am able to run encode on audio data and decode it back successfully. The problem is when I take .opus file encoded on PC. I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 20 Apr 2018 11:15:38 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/33414/opus-decoder" /><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/129127?ContentTypeID=1</link><pubDate>Fri, 20 Apr 2018 11:15:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4744773c-e4aa-457b-b93a-f35fb3404282</guid><dc:creator>Michal</dc:creator><description>&lt;p&gt;Hi - sorry, I somehow missed your question. Yes, that all WAS right. Now I understand OPUS better and I can decode B on nrf and need to add header data to be able to decode A on PC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/128641?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 12:56:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1757c8ef-7938-4b95-9ea6-eabe81a9c166</guid><dc:creator>Filip Kubicz</dc:creator><description>&lt;p&gt;Please see updated answer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/128627?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 12:16:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:95fa71ea-85f8-4b79-aa6d-e9d28cfd9e6c</guid><dc:creator>Filip Kubicz</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;1. As Stian said - Opus has 2 algorithms, CELT and SILK. Both of them simultaneously will not fit into the nRF52832 memory, so in Smart Remote you can choose at compile time which one you want to use. The hybrid mode is available to use if only you have enough flash and RAM memory.&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;The Opus decoder does not need additional information to know which algorithm&amp;nbsp;was used to encode the current frame. In the original Opus code (&lt;a href="https://opus-codec.org/"&gt;https://opus-codec.org/&lt;/a&gt;) there is a function&amp;nbsp;&lt;strong&gt;opus_packet_get_mode()&lt;/strong&gt; which checks if the frame was encoded with CELT or SILK.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;You can decode the data encoded on PC - if you open the .opus file and send it frame by frame to nRF52&amp;nbsp;it is possible to use Opus decoder as provided in Smart Remote code (there is not support for this scenario yet).&lt;br /&gt;&lt;br /&gt;Host decoding:&lt;br /&gt;There is the NVS (Nordic Voice Solution) package&amp;nbsp;which is responsible for decoding sound on the host side (Linux). It can be found in downloads section:&lt;br /&gt;&lt;a href="https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRFready-Smart-Remote-3-for-nRF52-Series"&gt;https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRFready-Smart-Remote-3-for-nRF52-Series&lt;/a&gt;&lt;br /&gt;When you download &amp;quot;Host software&amp;quot;, you can see in the source code how the Opus decoder is&amp;nbsp;used to decode sound received from nRF52 / Smart Remote.&lt;br /&gt;&lt;br /&gt;Embedded decoding on nRF52:&lt;br /&gt;There is work ongoing to provide downstream audio support. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: There was some confusion on which header we are talking about:&lt;br /&gt;- Opus file header with encode parameters&lt;br /&gt;- the optional header added to each frame by Smart Remote&amp;nbsp;to be able to easily reassembly sound on host side (in NVS) when streaming.&amp;nbsp;Irrelevant to this question.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/128616?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 11:10:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:746892c1-19e9-47f4-b2d1-c0139515eab4</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;The smart remote team is going to look into the possibility of adding downstream audio on the SR3 (decoding). So we can provide you with some more details within a couple of days.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/128615?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 11:02:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c2b7429-0254-4b2f-aa30-c52e2e5f153d</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;Just to make things clear:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You can encode A on nRF&lt;/li&gt;
&lt;li&gt;You can decode A on nRF&lt;/li&gt;
&lt;li&gt;You are not able to decode A on a PC&lt;/li&gt;
&lt;li&gt;You can encode B on a PC&lt;/li&gt;
&lt;li&gt;You are not able to decode B on nRF&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Is this correct?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OPUS decoder</title><link>https://devzone.nordicsemi.com/thread/128607?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 10:24:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4353cf8f-709c-43b6-baea-c028941242de</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hybrid mode is not supported because then you have to compile in both SILK and CELT which would make the code too big. Also, SILK is using quite a lot of CPU, so we decided to support only either SILK or CELT. So you would need to find a PC tool which supports selecting only one of them.&lt;/li&gt;
&lt;li&gt;SR3 is sending only raw compressed data, you don&amp;#39;t need any header to decode the data. &lt;a href="http://opus-codec.org/docs/opus_api-1.2/group__opus__decoder.html#ga7d1111f64c36027ddcb81799df9b3fc9"&gt;http://opus-codec.org/docs/opus_api-1.2/group__opus__decoder.html#ga7d1111f64c36027ddcb81799df9b3fc9&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>