{"id":80,"date":"2025-02-25T22:35:50","date_gmt":"2025-02-25T22:35:50","guid":{"rendered":"https:\/\/e-icus.net\/blog\/?p=80"},"modified":"2025-02-25T22:35:50","modified_gmt":"2025-02-25T22:35:50","slug":"preparando-un-servicio-que-retorna-texto-a-partir-de-un-audio","status":"publish","type":"post","link":"https:\/\/e-icus.net\/blog\/2025\/02\/25\/preparando-un-servicio-que-retorna-texto-a-partir-de-un-audio\/","title":{"rendered":"Preparando un servicio que retorna texto a partir de un audio"},"content":{"rendered":"\n<p>Pues hoy toc\u00f3 preparar el entorno para ejecutar en FastApi un servicio que reciba un audio y regrese un texto.<\/p>\n\n\n\n<p>Como es necesario procesar el audio que se graba en web y se env\u00eda al servidor, se necesitan algunas librerias para convertir entre formatos de audio<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"214\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-4.png\" alt=\"\" class=\"wp-image-81\" style=\"width:294px;height:auto\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-4.png 772w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-4-300x83.png 300w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-4-768x213.png 768w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/figure>\n\n\n\n<p>en mi caso utilic\u00e9 home brew para instalar la librer\u00eda ffmpeg para que funcione correctamente algunos m\u00f3dulos de python, el detalle es que al tener varias versiones de python tuve algunos problemas por lo que finalmente encontr\u00e9 una soluci\u00f3n, que fue, instalar las versiones compiladas de las librer\u00edas que se pueden descargar<a href=\"https:\/\/ffmpeg.org\/download.html#build-mac\"> aqu\u00ed<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"687\" height=\"256\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-5.png\" alt=\"\" class=\"wp-image-82\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-5.png 687w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-5-300x112.png 300w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/figure>\n\n\n\n<p>Para la prueba utilic\u00e9 vue, en el cu\u00e1l existe un m\u00e9todo para iniciar y detener la grabaci\u00f3n y finalmente el m\u00e9todo que env\u00eda a la api.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"945\" height=\"1024\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6-945x1024.png\" alt=\"\" class=\"wp-image-83\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6-945x1024.png 945w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6-277x300.png 277w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6-768x832.png 768w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6-1418x1536.png 1418w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-6.png 1444w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/figure>\n\n\n\n<p>y bueno este es parte del c\u00f3digo de la api, como se observa ya que instal\u00e9 ffmpeg y ffprobe con una versi\u00f3n compilada, los ejecutables los pas\u00e9 al directorio \/Applications para que python los pudiera encontrar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"842\" height=\"1024\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9-842x1024.png\" alt=\"\" class=\"wp-image-86\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9-842x1024.png 842w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9-247x300.png 247w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9-768x934.png 768w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9-1263x1536.png 1263w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-9.png 1388w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/figure>\n\n\n\n<p>En otras pruebas se pueden ver los resultados<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"244\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-8.png\" alt=\"\" class=\"wp-image-85\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-8.png 769w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-8-300x95.png 300w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<p>ahora a probar con modelos preentrenados que se ejecuten localmente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pues hoy toc\u00f3 preparar el entorno para ejecutar en FastApi un servicio que reciba un audio y regrese un texto. Como es necesario procesar el audio que se graba en web y se env\u00eda al servidor, se necesitan algunas librerias para convertir entre formatos de audio en mi caso utilic\u00e9 home brew para instalar la&hellip; <a class=\"more-link\" href=\"https:\/\/e-icus.net\/blog\/2025\/02\/25\/preparando-un-servicio-que-retorna-texto-a-partir-de-un-audio\/\">Seguir leyendo <span class=\"screen-reader-text\">Preparando un servicio que retorna texto a partir de un audio<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-80","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":1,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":87,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions\/87"}],"wp:attachment":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}