Entradas

Mostrando las entradas de junio, 2025

2transcriptor.py-4000 # 4000 frames = 0.25s

  import queue import sounddevice as sd from vosk import Model, KaldiRecognizer import json import os import sys from datetime import datetime # Ruta al modelo Vosk MODEL_PATH = "models/vosk-model-small-es-0.42" # Frecuencia y bloque recomendados SAMPLE_RATE = 16000 BLOCK_SIZE = 4000   # 4000 frames = 0.25s # Archivo para guardar transcripciones ARCHIVO_SALIDA = "transcripcion.txt" # Cola de audio q = queue.Queue() def audio_callback(indata, frames, time, status):     if status:         print( f "⚠️ Estado: {status} " , file=sys.stderr)     q.put(bytes(indata)) def main():     if not os.path.exists(MODEL_PATH):         print( f "❌ No se encontró el modelo en: {MODEL_PATH} " )         print( "🔗 Descárgalo desde: https://alphacephei.com/vosk/models" )         return     print( "📦 Cargando modelo..." )     model = Model(MODEL_PATH) ...

transcriptor.py-Frecuencia de muestreo-16000

  import queue import sounddevice as sd from vosk import Model, KaldiRecognizer import json import os import sys # Ruta al modelo de Vosk MODEL_PATH = "models/vosk-model-small-es-0.42" # Frecuencia de muestreo (ajústala si tu micrófono no es 16000) SAMPLE_RATE = 16000   # o 44100 # Cola para almacenar fragmentos de audio q = queue.Queue() # Callback de audio que guarda datos en la cola def audio_callback(indata, frames, time, status):     if status:         print( "⚠️ Estado:" , status, file=sys.stderr)     q.put(bytes(indata)) def main():     # Verifica que el modelo exista     if not os.path.exists(MODEL_PATH):         print( f "❌ Modelo no encontrado en: {MODEL_PATH} " )         print( "Descárgalo desde https://alphacephei.com/vosk/models" )         return     print( "📦 Cargando modelo..." )     model = Model(MODEL_PATH) ...

Objetivos de la nueva versión

  Objetivos de la nueva versión: Interfaz más amigable y moderna con estilo tipo editor de texto. No sobrescribe el texto anterior, sino que lo va acumulando conforme hablas. Incluye un editor enriquecido (Rich Text) directamente en el navegador. Permite copiar o guardar el texto fácilmente. 🧰 ¿Qué usaremos? ContentEditable : para el editor enriquecido nativo del navegador (no requiere librerías). Un mejor layout con botones y estilos. Mejor manejo de resultados Vosk (agregar texto, no reemplazar). ✅ Código HTML actualizado ( index1.html ): html Copiar Editar <!DOCTYPE html > < html lang = "es" > < head > < meta charset = "UTF-8" > < title >Dictado con Vosk </ title > < style > body { font-family : Arial, sans-serif; max-width : 900px ; margin : 40px auto; padding : 20px ; background-color : #f9f9f9 ; } h1 { text-align : center;...

Voz con Vosk-micro

Imagen
  Explicación del Código de Reconocimiento de Voz con Vosk http://localhost:3000/index1.html node server.js Este código HTML/JavaScript implementa una interfaz web para reconocimiento de voz utilizando el motor Vosk a través de una conexión con un servidor local. Estructura Principal HTML Básico : Define una página web con dos botones (Comenzar/Detener) y dos áreas para mostrar resultados. Incluye estilos CSS básicos para la presentación. Conexión WebSocket : javascript const socket = io ( 'http://localhost:3000' ) ; Establece conexión con un servidor Socket.IO en localhost puerto 3000. Funcionalidad de Audio Configuración de Audio  ( setupAudio() ): Crea un contexto de audio del navegador Solicita acceso al micrófono del usuario Configura un procesador de audio que: Captura datos de audio en formato Float32 Los convierte a Int16 (formato esperado por Vosk) Envía los datos al servidor a través de WebSocket Conversión de Formatos  ( convertFloat32ToInt16() ): Convierte l...

index

  <! DOCTYPE html > < html lang = "es" > < head >     < meta charset = "UTF-8" >     < title > Reconocimiento de Voz con Vosk </ title >     < style >         body { font-family : Arial , sans-serif ; max-width : 800px ; margin : 0 auto ; padding : 20px ; }         #result { border : 1px solid #ccc ; padding : 10px ; min-height : 50px ; margin : 20px 0 ; }         button { padding : 10px 15px ; font-size : 16px ; cursor : pointer ; }     </ style > </ head > < body >     < h1 > Reconocimiento de Voz con Vosk </ h1 >         < button id = "startBtn" > Comenzar </ button >     < button id = "stopBtn" disabled > Detener </ button >         < div id = "result" ></ div >     < div id = "finalRes...

in

  <! DOCTYPE html > < html lang = "es" > < head >     < meta charset = "UTF-8" >     < title > Reconocimiento de Voz con Vosk </ title >     < style >         body { font-family : Arial , sans-serif ; max-width : 800px ; margin : 0 auto ; padding : 20px ; }         #result { border : 1px solid #ccc ; padding : 10px ; min-height : 50px ; margin : 20px 0 ; }         button { padding : 10px 15px ; font-size : 16px ; cursor : pointer ; }     </ style > </ head > < body >     < h1 > Reconocimiento de Voz con Vosk </ h1 >         < button id = "startBtn" > Comenzar </ button >     < button id = "stopBtn" disabled > Detener </ button >         < div id = "result" ></ div >     < div id = "finalRes...