Meetily: asistente de reuniones con IA open source y local-first

Meetily es un asistente de reuniones con IA local-first y open source, con transcripción en tiempo real, resúmenes, Whisper/Parakeet, almacenamiento local, Ollama y endpoints OpenAI-compatible.

Meetily is an AI meeting assistant focused on privacy and local processing. It captures meeting audio on your machine, transcribes it in real time, and then uses AI to generate meeting summaries.

The problem is practical: meeting audio and transcripts often contain customer data, code, financial details, medical or legal information, and internal decisions. Meetily keeps transcription, storage, and optionally summarization closer to your own device or infrastructure.

Qué es Meetily

Meetily describes itself as a privacy-first AI meeting assistant with real-time transcription, summaries, local processing, and self-hosting. The repository is MIT licensed, mainly written in Rust, and uses Tauri plus Next.js for the desktop app.

It mainly does four things:

  • captures microphone and system audio;
  • runs local speech-to-text with Whisper or Parakeet;
  • stores meeting metadata, transcripts, and summaries;
  • generates minutes with Ollama, local models, or other LLM providers.

It supports macOS, Windows, and Linux. Some README links still use the old meeting-minutes repository name, so prefer the current GitHub page and official site when downloading.

Para quién es

Meetily fits users who do not want recordings or transcripts to leave the machine, teams replacing cloud meeting bots, organizations with compliance or confidentiality requirements, users who want Ollama or an internal OpenAI-compatible endpoint, and developers studying a Tauri + Rust + Next.js local AI app.

If you only meet occasionally and do not care about cloud upload, SaaS tools are easier. Meetily is about control, not zero setup.

Funciones principales

Local-first

Transcription models, recordings, transcripts, and summaries can stay on the local machine. For professional teams, that makes the data boundary easier to explain.

Real-time transcription

Meetily can generate transcripts while a meeting is running. The README mentions Whisper and Parakeet models and emphasizes that cloud transcription is not required.

Parakeet is attractive for speed; Whisper has a broader ecosystem and more references. The right choice depends on OS, GPU, language, and accuracy needs.

AI summaries

Meetily can send transcripts to an LLM for summaries. Listed providers include:

  • Ollama, for local-first use;
  • Claude;
  • Groq;
  • OpenRouter;
  • OpenAI;
  • custom OpenAI-compatible endpoints.

For maximum locality, start with Ollama. If your organization has a model gateway, use the OpenAI-compatible endpoint path.

Audio mixing

The README mentions microphone plus system audio capture, audio mixing, ducking, and clipping prevention. This matters because recording only the microphone often misses other speakers, while recording only system audio may miss your own voice.

Import and re-transcription

Import & Enhance can import existing audio files, create transcripts, and re-transcribe meetings with a different model or language. This is useful for old recordings or important meetings that deserve a more accurate rerun.

Arquitectura general

Meetily is a Tauri desktop app:

  • frontend: Next.js for meeting management, transcript display, and settings;
  • backend: Rust Core exposed through Tauri commands;
  • Audio Engine: microphone and system audio capture;
  • Transcription Engine: local speech-to-text models;
  • Database: local SQLite for metadata, transcripts, and summaries;
  • Summary Engine: Ollama or another LLM provider.

The tradeoff is familiar: the desktop app stays relatively light, but building from source means dealing with Node.js, Rust, Tauri, system audio permissions, model dependencies, and GPU acceleration.

Instalación

Normal users should download a release package.

Windows

Download the latest x64-setup.exe and run the installer.

The README still points to:

1
https://github.com/Zackriya-Solutions/meeting-minutes/releases/latest

If that changes, start from:

1
2
https://github.com/Zackriya-Solutions/meetily
https://meetily.ai

macOS

Download the .dmg, for example:

1
meetily_0.4.0_aarch64.dmg

Install it like a normal macOS app:

  1. open the .dmg;
  2. drag Meetily to Applications;
  3. launch it from Applications.

Apple Silicon machines are a good fit for local AI because unified memory and Metal acceleration help the local-model experience.

Linux

Linux mainly uses source builds. The README quick start is:

1
2
3
4
git clone https://github.com/Zackriya-Solutions/meeting-minutes
cd meeting-minutes/frontend
pnpm install
./build-gpu.sh

The current repository is:

1
git clone https://github.com/Zackriya-Solutions/meetily

If old commands redirect or directory names differ, confirm the current build script location first.

Construir desde código fuente

docs/BUILDING.md covers Linux, macOS, and Windows.

Linux dependencies

Ubuntu/Debian:

1
2
sudo apt update
sudo apt install build-essential cmake git

Fedora/RHEL:

1
sudo dnf install gcc-c++ cmake git

Arch Linux:

1
sudo pacman -S base-devel cmake git

Development and production builds:

1
2
./dev-gpu.sh
./build-gpu.sh

macOS build

Install Homebrew dependencies:

1
brew install cmake node pnpm

Then run:

1
2
pnpm tauri:dev
pnpm tauri:build

The docs say macOS uses Metal GPU acceleration by default.

Windows build

Windows needs Node.js, Rust, Visual Studio Build Tools with the Desktop development with C++ workload, and CMake.

1
2
pnpm tauri:dev
pnpm tauri:build

The docs describe Windows as CPU-only by default. For GPU acceleration, see docs/GPU_ACCELERATION.md.

Cómo entender la aceleración GPU

The Linux scripts try to detect GPU support:

Hardware or environment Checks Build feature
NVIDIA CUDA nvidia-smi, CUDA_PATH, or nvcc --features cuda
AMD ROCm rocm-smi, ROCM_PATH, or hipcc --features hipblas
Vulkan vulkaninfo, VULKAN_SDK, BLAS_INCLUDE_DIRS --features vulkan
OpenBLAS BLAS_INCLUDE_DIRS --features openblas
No GPU SDK none CPU-only

A display driver is not enough. For CUDA, at least verify:

1
2
nvidia-smi
nvcc --version

You can force a backend with TAURI_GPU_FEATURE:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
TAURI_GPU_FEATURE=cuda ./dev-gpu.sh
TAURI_GPU_FEATURE=cuda ./build-gpu.sh

TAURI_GPU_FEATURE=vulkan ./dev-gpu.sh
TAURI_GPU_FEATURE=vulkan ./build-gpu.sh

TAURI_GPU_FEATURE=hipblas ./dev-gpu.sh
TAURI_GPU_FEATURE=hipblas ./build-gpu.sh

TAURI_GPU_FEATURE="" ./dev-gpu.sh
TAURI_GPU_FEATURE="" ./build-gpu.sh

Real-time transcription depends heavily on CPU/GPU, memory, model size, and audio length. Test with a short recording first.

Cómo elegir el modelo de resumen

Transcription and summarization are separate. Speech-to-text cares about accuracy, language support, and speed; summarization cares about turning a long transcript into decisions, action items, and useful minutes.

For privacy-first use:

  • transcription: local Whisper or Parakeet;
  • summary: Ollama local model;
  • storage: local SQLite;
  • network: avoid cloud providers where possible.

For better summaries, keep transcription local but send transcripts to Claude, OpenRouter, Groq, OpenAI, or an internal OpenAI-compatible endpoint. That changes the privacy boundary because the transcript leaves the machine.

Diferencias entre Community Edition y PRO

The README says Meetily Community Edition will remain free and open source. Meetily PRO targets professional users and teams with higher transcription accuracy, custom summary templates, advanced export, automatic meeting detection, self-hosted deployment, and team features.

Community Edition is best for individuals, local-first use, open-source use, and customization. PRO is for teams that need stronger workflow, export, and deployment management.

Puntos a vigilar

Recording meetings can have legal and company-policy requirements. Confirm notice and consent rules before using any recording tool.

Local-first also does not mean zero risk. Once recordings and summaries are stored locally, think about disk encryption, backups, access control, and device loss.

AI summaries are not the meeting record. Keep the original transcript for important meetings and review final minutes manually.

Some README links still contain meeting-minutes; use the current repository and official site when release names or directories differ.

Desplegar un asistente local de reuniones en un NAS

El asistente de grabación de reuniones con IA es más adecuado para escenarios de implementación local donde el equipo tiene una gran cantidad de grabaciones de reuniones, audios de entrevistas, grabaciones de pantallas de cursos o registros de comunicaciones con clientes, pero no quiere que todo el audio se cargue en un servicio en la nube de terceros. NAS es perfecto para esto: siempre está en línea, tiene espacio en el disco duro, puede ejecutar Docker y también es conveniente para el almacenamiento centralizado de archivos de grabación.

Este artículo está organizado según “Tutoriales + Solución de problemas + Preguntas frecuentes”. El objetivo es ayudarlo a configurar un proceso de grabación de reuniones de IA local en el NAS: el audio se carga en el NAS, el servicio se convierte en texto y luego se utiliza el LLM local o privado para generar resúmenes, elementos de acción y listas de tareas pendientes.

Primero confirme qué tipo de asistente desea implementar

Hay aproximadamente tres rutas para obtener las actas de conferencias locales de IA:

ruta Características Adecuado para la multitud
Herramienta de transliteración pura Convertir audio a texto solamente Sólo se requieren subtítulos y transcripciones textuales.
Transcripción + resumen Primero STT, luego use LLM para resumir Necesita actas de reuniones y elementos de acción
Plataforma de conferencias completa La carga, la búsqueda, los permisos y el espacio del equipo están disponibles Uso a largo plazo por equipos pequeños

En NAS, se recomienda comenzar con “Transcripción + Resumen”. La plataforma completa tiene más funciones, pero la complejidad de la implementación, la base de datos, los permisos, los costos de copia de seguridad y actualización también son mayores.

Juicio de hardware antes de la implementación de NAS

Primero veamos si el NAS puede manejar la transcripción y el resumen.

Recomendaciones mínimas:

  • La memoria de 4 GB permite realizar pruebas ligeras.
  • La memoria de 8 GB es más adecuada para un funcionamiento a largo plazo.
  • El NAS x86 es más compatible que el NAS ARM.
  • Tener una tarjeta gráfica o GPU será más rápido, pero no es obligatorio.
  • Se debe reservar espacio en el disco duro para audio, texto transcrito y caché de modelo.

Si el rendimiento de su NAS es débil, puede utilizar el enfoque “almacenamiento NAS + otra inferencia de computadora”. El NAS es responsable de guardar las grabaciones y los resultados, y el servicio de transcripción se ejecuta en un minihost, una computadora de escritorio o una máquina GPU.

Arquitectura recomendada

Una arquitectura local práctica se puede diseñar así:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Grabación de la reunión
Directorio compartido del NAS
Servicio Docker
Transcripción con Whisper / faster-whisper
Resumen con Ollama / LLM compatible con OpenAI
Resultados en Markdown / TXT / SRT / web

La ventaja de esta estructura es que los componentes son claros. Si la transcripción falla, verifique STT. Si el resumen falla, verifique LLM. Si no se puede encontrar el archivo, verifique el directorio de montaje.

Primero prepare varios directorios en el NAS:

1
2
3
4
5
6
/volume1/docker/meeting-ai/
├── config/
├── input/
├── output/
├── models/
└── logs/

usar:

  • input: Poner el audio a procesar.
  • output: Guión desterrado, subtítulos, resumen.
  • models: Poner caché Whisper u otro modelo.
  • config: Poner el archivo de configuración.
  • logs: Poner el registro en ejecución.

Si planifica el directorio primero, la solución de problemas será mucho más fácil más adelante.

Ejemplo de composición de Docker

Las imágenes y los parámetros de diferentes proyectos de asistentes de conferencias son diferentes, pero las ideas son similares. A continuación se muestra un ejemplo de una estructura común:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
services:
  meeting-ai:
    image: your-meeting-assistant-image:latest
    container_name: meeting-ai
    restart: unless-stopped
    ports:
      - "7860:7860"
    volumes:
      - /volume1/docker/meeting-ai/input:/app/input
      - /volume1/docker/meeting-ai/output:/app/output
      - /volume1/docker/meeting-ai/models:/app/models
      - /volume1/docker/meeting-ai/config:/app/config
    environment:
      - TZ=Asia/Shanghai
      - WHISPER_MODEL=small
      - LLM_BASE_URL=http://ollama:11434
      - LLM_MODEL=qwen2.5:7b

Si su NAS utiliza Synology Container Manager, Feiniu Docker, TrueNAS Apps o Portainer, el núcleo es el mismo: imagen, puerto, montaje de directorio, variables de entorno.

¿Ollama también debería implementarse en NAS?

Si el rendimiento del NAS es suficiente, Ollama también se puede implementar en el NAS; si el rendimiento es débil, se recomienda poner a Ollama en una máquina más potente.

Ventajas de la implementación nativa de NAS:

-Los datos están todos en la intranet.

  • Configuración sencilla.
  • Larga duración en línea.

defecto:

  • La inferencia de modelos grandes es lenta.
  • La memoria se estira fácilmente.
  • Transcribir y resumir al mismo tiempo.

Una solución más estable es:

1
2
NAS: almacenamiento, interfaz web, cola de tareas
Mini PC o equipo de escritorio: Ollama / inferencia GPU

Luego apunte LLM_BASE_URL a la dirección de intranet de esa máquina en la configuración.

Cómo lidiar con los formatos de audio

Los formatos de grabación de conferencias comunes incluyen mp3, m4a, wav y mp4. Para reducir los problemas, se recomienda convertir uniformemente a wav o mp3 estándar.

Puedes usar ffmpeg para preprocesar:

1
ffmpeg -i meeting.m4a -ar 16000 -ac 1 meeting.wav

significado:

  • -ar 16000: Convierte la frecuencia de muestreo a 16k.
  • -ac 1: Convertir a mono.
  • meeting.wav: Salida para uso del modelo de transcripción.

Si el archivo original es un vídeo, también puedes extraer solo el audio:

1
ffmpeg -i meeting.mp4 -vn -ar 16000 -ac 1 meeting.wav

Cómo elegir un modelo de transcripción

Las opciones más comunes son Susurro o susurro más rápido. Los modelos más grandes generalmente tienen mejor precisión, pero también mayor velocidad y uso de memoria.

Modelo velocidad Exactitud Adaptación NAS
diminuto pronto más bajo adecuado para pruebas
base rápido generalmente Se puede probar el NAS de gama baja
pequeño medio mejor Recomendado para empezar
medio lento mejor Necesita máquinas más fuertes
grande muy lento alto No recomendado para NAS de gama baja

Se recomienda que la conferencia china comience en small. Si la calidad de la transcripción no es lo suficientemente buena, intente nuevamente con medium. No utilice el modelo más grande al principio; de lo contrario, será difícil determinar si el modelo es lento, la CPU es lenta o el servicio está bloqueado al solucionar el problema.

Sugerencias de palabras de resumen

Una vez que se completa la transcripción, LLM se puede utilizar para generar actas estructuradas. Las palabras clave se pueden fijar en plantillas:

1
2
3
4
5
6
7
8
Genera un acta de reunión en chino a partir de la siguiente transcripción.

Requisitos:
1. Extrae el tema de la reunión.
2. Enumera las discusiones clave en viñetas.
3. Lista por separado las acciones, incluyendo responsable, tarea y fecha límite; si el responsable o la fecha no están claros, escribe "no especificado".
4. Conserva números importantes, nombres de proyectos y riesgos.
5. No inventes información que no aparezca en la transcripción.

Para los modelos locales, si el manuscrito palabra por palabra es demasiado largo, debe resumirse en segmentos y luego resumirse. No acumule varias horas de reuniones en una sola sesión.

Errores comunes: el inicio del contenedor falla

Rendimiento típico:

1
2
3
container exited
permission denied
exec format error

Razones comunes:

  • La CPU del NAS no admite la arquitectura de duplicación.
  • Permisos insuficientes en el directorio de montaje.
  • Faltan variables de entorno.
  • El puerto está ocupado.
  • La ruta del archivo de configuración está escrita incorrectamente.

Consultar orden:

  1. Mire el registro del contenedor.
  2. Confirme que la imagen sea compatible con amd64 o arm64.
  3. Verifique los permisos del directorio.
  4. Cambie a un puerto desocupado.
  5. Comience primero con la configuración mínima y luego agregue gradualmente modelos y LLM.

exec format error Es probable que la arquitectura de la imagen no coincida.

Error común: no hay respuesta después de cargar el audio

Posibles razones:

  • El directorio de carga no está montado dentro del contenedor.
  • El servicio sólo escanea sufijos específicos.
  • La tarea escaneó el archivo antes de que terminara de escribirse.
  • El nombre del archivo contiene caracteres especiales.
  • La cola de tareas en segundo plano está bloqueada.

Se recomienda probar primero con un nombre de archivo simple:

1
meeting-test.mp3

No utilice nombres de archivos largos que contengan espacios, corchetes chinos o símbolos especiales desde el principio. Después de ejecutarlo, pruebe nuevamente el archivo real.

Error común: la transcripción es muy lenta

La traducción lenta en NAS es común y no necesariamente se debe a una implementación defectuosa.

Método de optimización:

  • Cambiar a un modelo Whisper más pequeño.
  • Primero convierta el audio a mono de 16k.
  • Dividir las reuniones largas en segmentos.
  • Evite que tanto la transcripción como el resumen LLM llenen la CPU.
  • Coloque las tareas de transcripción en máquinas más potentes y el NAS solo se encarga del almacenamiento.

No es sorprendente que en un NAS de bajo consumo una reunión de una hora dure decenas de minutos. La clave es poder terminar la carrera de manera estable.

Errores comunes: transcripción de caracteres confusos o errores de reconocimiento de idioma

Posibles razones:

  • Error en la detección automática de idioma.
  • El audio es demasiado ruidoso.
  • Frecuencia de muestreo o canal de audio anormal.
  • El modelo es demasiado pequeño.
  • Las escenas mixtas en chino e inglés son demasiado complicadas.

Método de procesamiento:

  • Especificar explícitamente el idioma como chino.
  • Primero use ffmpeg para unificar el formato de audio.
  • Cambiar al modelo small o medium.
  • Intente mejorar la calidad de grabación para reuniones de varias personas.
  • Guarde el audio original de las reuniones importantes para revisarlo fácilmente.

Error común: falló la conexión con Ollama

Rendimiento típico:

1
2
3
connection refused
failed to connect to Ollama
model not found

Solución de problemas:

  • ¿Ollama se está postulando?
  • LLM_BASE_URL está escrito correctamente.
  • Si el localhost al que se accede en el contenedor apunta a sí mismo, no al NAS o al host.
  • ¿El modelo ya es ollama pull?
  • Si el firewall del NAS permite el acceso a la intranet.

Si el asistente de conferencia está en un contenedor, http://localhost:11434 normalmente se refiere al contenedor mismo. Cuando Ollama está en el host u otra máquina, se debe escribir la IP de la intranet correspondiente.

Errores comunes: mala calidad del resumen

La mala calidad del resumen no suele ser un problema de implementación, sino un problema de entrada y modelo.

Razones comunes:

  • Hay demasiadas erratas en el manuscrito textual.
  • La sesión es demasiado larga y una entrada está fuera de contexto.
  • El modelo local es demasiado pequeño.
  • No hay ningún formato de salida restringido para las palabras clave.
  • Los elementos de acción no están claramente establecidos en el texto original.

Métodos de mejora:

  • Comienza con un resumen segmentado de 10 a 20 minutos.
  • Hacer un resumen al final.
  • Requerir que el modelo esté marcado como “incierto”.
  • Utilice campos fijos para elementos de acción.
  • Revisión manual de reuniones importantes.

Un modelo local puede ahorrar costos, pero no espere que complete automáticamente información que no se dijo en la reunión.

Preguntas frecuentes: No hay suficiente memoria NAS

Si el NAS tiene poca memoria, se recomienda:

  • Seleccione base o small como modelo de transcripción.
  • No ejecute un gran LLM en NAS.
  • Limitar las tareas simultáneas a 1.
  • Cerrar los contenedores innecesarios.
  • Coloque el caché del modelo en un volumen con suficiente espacio.

Si OOM ocurre con frecuencia, significa que este NAS es más adecuado para almacenamiento y no para uso como máquina de inferencia principal.

A qué prestar atención sobre privacidad y permisos

Las grabaciones de reuniones suelen contener información confidencial y las implementaciones locales no pueden ignorar los permisos.

sugerencia:

  • Establecer permisos de acceso para el directorio de entrada/salida.
  • No exponga la interfaz de usuario web directamente a la red pública.
  • Utilice VPN o autenticación de proxy inverso para acceder a la red externa.
  • Limpiar periódicamente archivos intermedios y de audio temporales.
  • Los resultados importantes de las reuniones conservan el proceso de revisión manual.
  • Si te conectas a Cloud LLM, necesitas saber qué textos se cargarán.

“Implementado en NAS” no equivale automáticamente a seguridad; los permisos y los límites de la red aún deben ser administrados por usted mismo.

Proceso de implementación recomendado

La primera implementación se puede realizar en este orden:

  1. Cree directorios de entrada, salida, modelos y configuración en el NAS.
  2. Utilice Docker para ejecutar el servicio de asistente de conferencia.
  3. Sube un audio de prueba de 1 minuto.
  4. Confirme el enlace transcrito utilizando el modelo tiny o base.
  5. Cambie al modelo small para probar la precisión china.
  6. Conéctese a Ollama o a un LLM compatible con OpenAI para obtener un resumen.
  7. Configure la limpieza periódica y el control de permisos.
  8. Procese nuevamente la grabación de la reunión real.

No empieces con una prueba de grabación de una sesión de dos horas. Utilice audio breve para verificar el enlace primero, lo que ahorra tiempo y facilita la resolución de problemas.

Preguntas frecuentes

¿Es posible realizar una transcripción local completa sin conexión en NAS?

Sí, pero solo si el modelo de transliteración, el modelo de resumen y todas las dependencias son locales. Si el resumen llama al LLM en la nube, no está completamente fuera de línea. Se recomienda distinguir claramente las fuentes de STT y LLM en la configuración.

¿Se pueden implementar Synology, Feiniu y TrueNAS?

Siempre que puedas ejecutar Docker o servicios de contenedores similares, en teoría está bien. Las diferencias están principalmente en rutas, permisos, asignaciones de puertos y arquitectura de CPU.

¿Es ARM NAS adecuado para funcionar?

Se puede ejecutar una transcripción ligera, pero la compatibilidad y el rendimiento de la imagen deben confirmarse con antelación. Muchas imágenes de IA prefieren amd64 de forma predeterminada y los dispositivos ARM son propensos a discrepancias en la arquitectura.

¿El asistente de grabación de reuniones requiere una GPU?

incierto. La CPU también puede transscribir, pero es más lenta. Aceptable para audio corto y uso de baja frecuencia; Se recomiendan máquinas con GPU para una gran cantidad de reuniones o vídeos largos.

¿En qué formato se debe guardar la salida?

Se recomienda guardar al menos txt o md textualmente, los subtítulos srt y el resumen md. Markdown es mejor para búsquedas, archivados y ediciones humanas posteriores.

¿Puede identificar automáticamente a diferentes hablantes?

Esto depende de si la herramienta que está utilizando admite la diarioización de los oradores. Es más complejo y requiere más recursos que la transcripción ordinaria. La importante reunión recomendó que el “reconocimiento del hablante” se considere una característica mejorada y no una característica obligatoria en la primera versión.

¿Puedo monitorear directamente la carpeta de grabación de la reunión de forma automática?

Sí, pero tenga en cuenta que la redacción del archivo se completa antes de procesarlo. De lo contrario, la tarea comenzará a transcribirse antes de que se cargue la grabación y es fácil fallar. Puede utilizar el directorio temporal para agregarlo y moverlo una vez completado.

¿Se puede utilizar directamente el resumen del modelo local como registro formal?

No recomendado. Los resúmenes de IA son buenos como primeros borradores, especialmente si las acciones y las responsabilidades requieren una revisión humana. Sea aún más cauteloso con las reuniones con clientes, reuniones legales y reuniones importantes para la toma de decisiones.

Resumen

Meetily matters because it moves the meeting AI pipeline back toward the local machine: capture, transcription, storage, and optionally summarization. For privacy- and compliance-sensitive teams, that is more controllable than a convenient but opaque cloud bot.

It is not a no-setup tool. Start with a release package to test transcription and summary quality, then decide whether source builds, GPU tuning, or internal model integration are worth the engineering time.