{"id":19444,"date":"2022-02-13T10:43:02","date_gmt":"2022-02-13T13:43:02","guid":{"rendered":"http:\/\/maurinsoft.com.br\/?p=19444"},"modified":"2023-08-19T09:03:12","modified_gmt":"2023-08-19T12:03:12","slug":"cmu-sphinx","status":"publish","type":"post","link":"https:\/\/maurinsoft.com.br\/wp\/cmu-sphinx\/","title":{"rendered":"CMU Sphinx"},"content":{"rendered":"\n<p>Temos visto uma crescente de IoT desenvolvidos especificamente para reconhecer comandos de seu dono, tais dispositivos, como Alexa ou o Google Home, tem se tornado, bem popular.<\/p>\n\n\n\n<p>Iremos neste artigo, aprender a criar nosso pr\u00f3prio google home.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"o-que-e-o-cmu-sphinx\">O que \u00e9 o CMU Sphinx<\/h2>\n\n\n\n<p>CMU Sphinx \u00e9 uma api de reconhecimento de voz. Ela \u00e9 bastante consagrada, possuindo muitos projetos atrelados a ela.<\/p>\n\n\n\n<p>Trato a biblioteca com bastante foco para desenvolvimento IoT, no meu livro que pode ser <a href=\"https:\/\/sourceforge.net\/projects\/robotinics\/files\/livro\/Projetos%20IOT%20com%20Arduino%20e%20Raspberry-12.pdf\/download\" target=\"_blank\" rel=\"noreferrer noopener\">baixado livremente<\/a>.<\/p>\n\n\n\n<p>A grande vantagem desta api, \u00e9 que ela n\u00e3o necessita de conex\u00e3o externa ou acesso a internet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"uso-do-cmu-sphinx\">Uso do CMU Sphinx<\/h2>\n\n\n\n<p>Utilizaremos o CMU Sphinx como base do nosso projeto.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Compila\u00e7\u00e3o de exemplo do  cmusphinx - Reconhecimento de V\u00f3z\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/P74bz2bIgKE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"git-do-projeto\">GIT do Projeto<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/cmusphinx\">cmusphinx \u00b7 GitHub<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"site-do-projeto\">Site do Projeto<\/h2>\n\n\n\n<p><a href=\"https:\/\/cmusphinx.github.io\/wiki\/\">CMUSphinx Documentation \u2013 CMUSphinx Open Source Speech Recognition<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"divisao-por-projetos\">Divis\u00e3o por Projetos<\/h2>\n\n\n\n<p>O CMU Sphinx, possui diversos softwares ou pacotes separados.<\/p>\n\n\n\n<p>Irei abordar alguns deles, que ser\u00e3o algo deste artigo.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sphixbase &#8211; Biblioteca base<\/li>\n\n\n\n<li>pocketsphinx &#8211; Conjunto de fontes e dicion\u00e1rio para reconhecimento de v\u00f3z usado no sphinxbase.<\/li>\n\n\n\n<li>sphinxtrain &#8211; Ferramenta de Traino de modelos ac\u00fasticos<\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/sourceforge.net\/projects\/cmusphinx\/files\/Acoustic%20and%20Language%20Models\/\" target=\"_blank\">Modelo em portgu\u00eas<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"instalacao-do-sphinx\">Instala\u00e7\u00e3o do Sphinx<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pre-requisitos-de-instalacao\">Pr\u00e9 requisitos de instala\u00e7\u00e3o<\/h3>\n\n\n\n<p>Para atender a instala\u00e7\u00e3o ser\u00e1 necess\u00e1rio as seguintes bibliotecas:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>apt install bison<\/p>\n\n\n\n<p>apt install libasound2-dev<\/p>\n\n\n\n<p>apt install swig<\/p>\n\n\n\n<p>apt install python<\/p>\n<cite>Pr\u00e9 requisitos de instala\u00e7\u00e3o <\/cite><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"instalacao-do-sphinx-pelo-gerenciador-de-pacotes\">Instala\u00e7\u00e3o do Sphinx pelo gerenciador de pacotes<\/h3>\n\n\n\n<p>A instala\u00e7\u00e3o do sphinx pelo gerenciador de pacote, fica bem mais f\u00e1cil, porem pode ser necess\u00e1rio, atualizar manualmente a vers\u00e3o, pois ninguem garante que o reposit\u00f3rio estar\u00e1 atualizado com a ultima vers\u00e3o.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>apt install shinxbase*<\/p>\n\n\n\n<p>apt install pocketsphinx*<\/p>\n<cite>instala\u00e7\u00e3o atrav\u00e9s do gerenciador de pacotes<\/cite><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"baixa-manual\">Baixa manual<\/h3>\n\n\n\n<p>Nesta modalidade iremos baixar e instalar o sphinx manualmente em nosso linux.<\/p>\n\n\n\n<p>Primeiramente iremos baixar o projeto no git<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>git clone https:\/\/github.com\/cmusphinx\/sphinxbase.git<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/maurinsoft.com.br\/wp-content\/uploads\/2022\/02\/image-6.png\" alt=\"\" class=\"wp-image-19458\"\/><figcaption class=\"wp-element-caption\">Baixando o projeto do reposit\u00f3rio<\/figcaption><\/figure>\n\n\n\n<p>digite agora o autogen para gerar os arquivos de configura\u00e7\u00e3o.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p> .\/autogen.sh<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/maurinsoft.com.br\/wp-content\/uploads\/2022\/02\/image-7.png\" alt=\"\" class=\"wp-image-19459\"\/><figcaption class=\"wp-element-caption\">execu\u00e7\u00e3o do autogen.sh<\/figcaption><\/figure>\n\n\n\n<p>Agora, rode o \/configure, conforme a linha a seguir:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>.\/configure &#8211;enable-fixed<\/p>\n<\/blockquote>\n\n\n\n<p>Em seguida compile o projeto:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>make clean all<\/p>\n\n\n\n<p>make <\/p>\n\n\n\n<p>make install<\/p>\n<\/blockquote>\n\n\n\n<p>Ao fim do processo, voce ter\u00e1 instalado a base.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"instalando-o-pocket-sphinx\">Instalando o Pocket Sphinx<\/h2>\n\n\n\n<p>Bom fizemos a instala\u00e7\u00e3o do Sphinxbase, mas iremos agora, adicionar o pacote, necess\u00e1rio para desenvolvimento desktop.<\/p>\n\n\n\n<p>A instala\u00e7\u00e3o tradicional j\u00e1 foi passada na instala\u00e7\u00e3o do sphinxbase, por isso iremos omitir.<\/p>\n\n\n\n<p>Iremos agora orientar na compila\u00e7\u00e3o dos fontes.<\/p>\n\n\n\n<p>Baixe os fontes do reposit\u00f3rio:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>git clone https:\/\/github.com\/cmusphinx\/pocketsphinx.git<\/p>\n<\/blockquote>\n\n\n\n<p>Em seguida entre na pasta e realize os seguintes comandos:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>.\/autogen.sh<\/p>\n\n\n\n<p>.\/configure<\/p>\n\n\n\n<p>make check<\/p>\n\n\n\n<p>make install<\/p>\n\n\n\n<p>make installcheck<\/p>\n\n\n\n<p>ldconfig<\/p>\n<\/blockquote>\n\n\n\n<p>Ao fim do projeto, se der certo, ir\u00e1 aparecer o seguinte bin\u00e1rio.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&gt; pocketsphinx_continuous <\/p>\n<\/blockquote>\n\n\n\n<p>Ao tentar rodar, ele ir\u00e1 pedir parametros, vamos testar agora com parametros adicionais.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>pocketsphinx_continuous -adcdev plughw:1,0 -kws_threshold 1e-20 -inmic yes<\/p>\n<\/blockquote>\n\n\n\n<p>Neste modo ele ir\u00e1 ouvir comandos em ingl\u00eas, fale um simples hello, que voce ir\u00e1 verificar que o mesmo funciona.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/maurinsoft.com.br\/wp-content\/uploads\/2022\/02\/image-8.png\" alt=\"\" class=\"wp-image-19464\"\/><figcaption class=\"wp-element-caption\">Teste de hello<\/figcaption><\/figure>\n\n\n\n<p>Bom, finalizamos este primeiro artigo, no pr\u00f3ximo, iremos criar uma aplica\u00e7\u00e3o que ouve as pessoas. Sendo nosso hello world em C.<\/p>\n\n\n\n<p>Espero que tenham gostado.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Reconhecimento de V\u00f3z para dispositivos embarcados.\" width=\"1170\" height=\"878\" src=\"https:\/\/www.youtube.com\/embed\/cykrvnkIxl8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Reconhecimento de voz com sphinx<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Temos visto uma crescente de IoT desenvolvidos especificamente para reconhecer comandos de seu dono, tais dispositivos, como Alexa ou o Google Home, tem se tornado, bem popular. Iremos neste artigo, aprender a criar nosso pr\u00f3prio google home. O que \u00e9 o CMU Sphinx CMU Sphinx \u00e9 uma api de reconhecimento de voz. Ela \u00e9 bastante [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":19446,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,496,39,495,19],"tags":[133,345],"class_list":["post-19444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-cmusphinx","category-ia","category-reconhecimento-de-voz","category-srvouve","tag-cmusphinx","tag-reconhecimento-de-voz"],"_links":{"self":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts\/19444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/comments?post=19444"}],"version-history":[{"count":2,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts\/19444\/revisions"}],"predecessor-version":[{"id":23691,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts\/19444\/revisions\/23691"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/media?parent=19444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/categories?post=19444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/tags?post=19444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}