{"id":1046,"date":"2026-10-12T17:43:59","date_gmt":"2026-10-12T20:43:59","guid":{"rendered":"https:\/\/labre-pe.org.br\/?p=1046"},"modified":"2026-10-12T17:44:00","modified_gmt":"2026-10-12T20:44:00","slug":"deepcw-um-decodificador-de-cw-com-redes-neurais-direto-no-navegador","status":"publish","type":"post","link":"https:\/\/labre-pe.org.br\/en\/deepcw-um-decodificador-de-cw-com-redes-neurais-direto-no-navegador\/","title":{"rendered":"DeepCW: um decodificador de CW com redes neurais, direto no navegador"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Quem opera CW sabe: nada substitui o ouvido treinado. Mas tamb\u00e9m sabemos como \u00e9 frustrante tentar decodificar um sinal fraco com QSB, ru\u00eddo e vizinhos de frequ\u00eancia atrapalhando. Os decodificadores tradicionais costumam sofrer nessas horas, e \u00e9 a\u00ed que entra o <strong>DeepCW<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O que \u00e9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O DeepCW \u00e9 um decodificador de c\u00f3digo Morse (CW) em tempo real que usa uma <strong>rede neural<\/strong> para transformar o \u00e1udio em texto. Ele roda direto no navegador, sem instala\u00e7\u00e3o, em <strong><a href=\"https:\/\/deepcw.cc\/\">https:\/\/deepcw.cc\/<\/a><\/strong>. O projeto \u00e9 de c\u00f3digo aberto e o reposit\u00f3rio est\u00e1 em <a href=\"https:\/\/github.com\/e04\/web-deep-cw-decoder\">https:\/\/github.com\/e04\/web-deep-cw-decoder<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Principais recursos<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Decodifica\u00e7\u00e3o em tempo real<\/strong> com aprendizado profundo.<\/li>\n\n\n\n<li><strong>Robustez<\/strong> em sinais fracos, com QSB e em condi\u00e7\u00f5es ruidosas.<\/li>\n\n\n\n<li><strong>Decodifica\u00e7\u00e3o multicanal<\/strong>, para acompanhar v\u00e1rios sinais de CW ao mesmo tempo.<\/li>\n\n\n\n<li><strong>Redu\u00e7\u00e3o de ru\u00eddo por IA<\/strong> com passagem de \u00e1udio: al\u00e9m de decodificar, o DeepCW devolve o \u00e1udio tratado, para voc\u00ea ouvir o sinal mais limpo.<\/li>\n\n\n\n<li><strong>Multiplataforma<\/strong>: Windows, macOS, Android e iOS, j\u00e1 que roda no navegador.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Os n\u00fameros<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O autor publicou um benchmark em modo <code>HIGH<\/code>, com ru\u00eddo branco gaussiano (AWGN) e SNR referenciada a uma banda de ru\u00eddo de 2.500 Hz. A m\u00e9trica \u00e9 a taxa de erro de caracteres (CER). Os resultados:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>0,00% de erro<\/strong> de 0 a -4 dB de SNR, em todas as velocidades testadas.<\/li>\n\n\n\n<li>Praticamente sem erros em <strong>-6 dB<\/strong>.<\/li>\n\n\n\n<li>Abaixo de <strong>1,5%<\/strong> em <strong>-8 dB<\/strong>.<\/li>\n\n\n\n<li>Abaixo de <strong>8%<\/strong> em <strong>-10 dB<\/strong>, em toda a faixa de velocidades.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ou seja, o desempenho cai de forma gradual, sem um \u201cprecip\u00edcio\u201d quando o sinal se aproxima do piso de ru\u00eddo.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"767\" height=\"465\" src=\"https:\/\/labre-pe.org.br\/wp-content\/uploads\/2026\/10\/deepcw_cer.jpg\" alt=\"Deepcw Cer\" class=\"wp-image-1050\" srcset=\"https:\/\/labre-pe.org.br\/wp-content\/uploads\/2026\/10\/deepcw_cer.jpg 767w, https:\/\/labre-pe.org.br\/wp-content\/uploads\/2026\/10\/deepcw_cer-300x182.jpg 300w, https:\/\/labre-pe.org.br\/wp-content\/uploads\/2026\/10\/deepcw_cer-18x12.jpg 18w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/><figcaption class=\"wp-element-caption\">CER &#8211; Character Error Rate ou Taxa de erro por caractere VS rela\u00e7\u00e3o Sinal-Ruido<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compara\u00e7\u00e3o com CW Skimmer, fldigi e ggmorse<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O autor tamb\u00e9m comparou o DeepCW com o <strong>CW Skimmer<\/strong>, o <strong>fldigi<\/strong> e o <strong>ggmorse<\/strong>, usando trechos reais de QSOs em CW publicados no YouTube. Em um dos exemplos, a troca de reportes entre AI5DD e AE0Q, o DeepCW reproduziu indicativos e reportes quase integralmente, errando sobretudo os espa\u00e7os entre palavras. Os outros decodificadores tiveram mais trocas de caracteres e lixo no meio do texto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vale uma ressalva, que o pr\u00f3prio autor faz: a compara\u00e7\u00e3o <strong>n\u00e3o \u00e9 um ranking geral<\/strong> desses programas. Ela reflete apenas os trechos, configura\u00e7\u00f5es e m\u00e9todo usados nos testes. Fldigi, CW Skimmer e ggmorse s\u00e3o projetos importantes para o hobby e continuam excelentes em muitos cen\u00e1rios. O melhor teste \u00e9 abrir o DeepCW e comparar com o seu pr\u00f3prio \u00e1udio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Para quem quer ir mais fundo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O modelo e uma implementa\u00e7\u00e3o de refer\u00eancia est\u00e3o num reposit\u00f3rio separado, o <strong>DeepCW Engine<\/strong> (<a href=\"https:\/\/github.com\/e04\/deepcw-engine\">https:\/\/github.com\/e04\/deepcw-engine<\/a>), com o modelo, os metadados e exemplos em Python e Node.js para decodificar CW a partir de arquivos WAV. Quem gosta de programar pode integrar o decodificador em seus pr\u00f3prios projetos. O autor tamb\u00e9m tem o <strong>HamNoise<\/strong> (<a href=\"https:\/\/github.com\/e04\/HamNoise\">https:\/\/github.com\/e04\/HamNoise<\/a>), relacionado \u00e0 redu\u00e7\u00e3o de ru\u00eddo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como experimentar<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Acesse <strong><a href=\"https:\/\/deepcw.cc\/\">https:\/\/deepcw.cc\/<\/a><\/strong> no navegador do computador ou do celular.<\/li>\n\n\n\n<li>Permita o acesso ao \u00e1udio (microfone ou entrada de \u00e1udio do r\u00e1dio, conforme seu setup).<\/li>\n\n\n\n<li>Sintonize uma esta\u00e7\u00e3o de CW e acompanhe o texto aparecendo na tela.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Para testar com calma, voc\u00ea pode tamb\u00e9m reproduzir grava\u00e7\u00f5es de QSOs no computador e deixar o DeepCW \u201couvindo\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Considera\u00e7\u00f5es finais<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Decodificadores nunca v\u00e3o substituir o prazer de copiar CW de ouvido, e muita gente prefere assim. Mas como ferramenta de apoio para estudo, para conferir um indicativo duvidoso, para acompanhar um pileup ou para praticar com sinais fracos, o DeepCW \u00e9 uma adi\u00e7\u00e3o interessante e gratuita ao nosso conjunto de ferramentas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se testar, conte nos coment\u00e1rios como foi a experi\u00eancia na sua esta\u00e7\u00e3o. <strong>73!<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Link do projeto: <a href=\"https:\/\/github.com\/e04\/web-deep-cw-decoder\">https:\/\/github.com\/e04\/web-deep-cw-decoder<\/a> | Aplica\u00e7\u00e3o web: <a href=\"https:\/\/deepcw.cc\/\">https:\/\/deepcw.cc\/<\/a><\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>","protected":false},"excerpt":{"rendered":"<p>Quem opera CW sabe: nada substitui o ouvido treinado. Mas tamb\u00e9m sabemos como \u00e9 frustrante tentar decodificar um sinal fraco com QSB, ru\u00eddo e vizinhos de frequ\u00eancia atrapalhando. Os decodificadores tradicionais costumam sofrer nessas horas, e \u00e9 a\u00ed que entra o DeepCW. O que \u00e9 O DeepCW \u00e9 um decodificador de c\u00f3digo Morse (CW) em &#8230; <a title=\"DeepCW: um decodificador de CW com redes neurais, direto no navegador\" class=\"read-more\" href=\"https:\/\/labre-pe.org.br\/en\/deepcw-um-decodificador-de-cw-com-redes-neurais-direto-no-navegador\/\" aria-label=\"Read more about DeepCW: um decodificador de CW com redes neurais, direto no navegador\">Read more<\/a><\/p>","protected":false},"author":2,"featured_media":1049,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-1046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/posts\/1046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/comments?post=1046"}],"version-history":[{"count":1,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/posts\/1046\/revisions"}],"predecessor-version":[{"id":1051,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/posts\/1046\/revisions\/1051"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/media\/1049"}],"wp:attachment":[{"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/media?parent=1046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/categories?post=1046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labre-pe.org.br\/en\/wp-json\/wp\/v2\/tags?post=1046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}