%TEMP%\LoopbackTranscriber\recording_<fecha>*.wav y .session.json
Se borran al procesar. Si quedan, se recuperan al arrancar.
Ficheros para Whisper
%TEMP%\LoopbackTranscriber\*.16k.wav
Se borran al terminar cada procesado. Los que queden se borran al recuperar su grabación huérfana o, si tienen más de 7 días, al terminar la siguiente grabación (procesada o conservada sin procesar).
Trabajos de los procesos auxiliares
%TEMP%\LoopbackTranscriber\worker\
<guid>.job.json, <guid>.result.json y <guid>.live.json. Se borran al terminar.
Re-transcripciones
%TEMP%\LoopbackTranscriber\retranscribe\<guid>\
Se borra al terminar.
Carpeta de transcripciones
Cada grabación es una carpeta transcripts\<App>\<App>_<yyyyMMdd_HHmmss>\. Dentro, <base> es el nombre de esa carpeta:
Fichero
Contenido
Cuándo existe
<base>.md
La transcripción, en Markdown.
Siempre.
<base>.wav
Copia de la pista principal.
Siempre.
<base>_mic.wav
Copia de la pista del micrófono.
Si se grabó el micrófono.
<base>.recording.json
Desfase del micrófono.
Si hay _mic.wav.
<base>.summary.json
El resumen.
Si se generó.
TranscriptHistoryService.LoadFromDisk recorre las carpetas de primer nivel y las de segundo nivel. Una carpeta es una grabación si contiene <nombre-de-la-carpeta>.md, .txt o .wav. Del nombre (<App>_<yyyyMMdd>_<HHmmss>) salen la aplicación y la fecha. Si el nombre no sigue ese patrón, se usa el nombre entero como aplicación y la fecha de modificación de la carpeta. Así se leen también las grabaciones de versiones anteriores, guardadas directamente en transcripts\<base>\ o en .txt.
TranscriptsFolderWatcher vigila la carpeta y sus subcarpetas: la creación, el borrado y el cambio de nombre de ficheros y carpetas, no los cambios de contenido. Recarga el historial 500 ms después del último cambio. Si el vigilante falla, se vuelve a crear al recargar.
<base>.md
Parte
Formato
Ejemplo
Cabecera
# <App> - dd/MM/yyyy HH:mm, en la primera línea
# Teams - 18/10/2026 09:30
Párrafos
<etiqueta>: <texto>, uno por intervención
Participantes: Buenos días a todos. · pgomur (Tú): La integración está terminada.
El visor no muestra la cabecera como parte de la conversación.
Los párrafos van separados por una línea en blanco.
La etiqueta <hablante>: solo aparece si se grabó el micrófono. Ver Composición.
El visor lo convierte en mensajes con TranscriptMessageParser: quita la cabecera, separa los párrafos por las líneas en blanco y reconoce la etiqueta con el patrón de SpeakerLabels. Los mensajes con tu etiqueta se alinean a la derecha.
<base>.recording.json
Clave
Tipo
Significado
MicStartOffsetTicks
entero
Desfase del micrófono respecto a la pista principal, en ticks de .NET (100 ns). Por ejemplo, 1250000 son 0,125 s.
Solo existe si hay _mic.wav. Lo usa la re-transcripción.
<base>.summary.json
Clave
Tipo
Significado
Title
texto
Título del resumen. Sustituye al nombre de la aplicación en el historial.
Summary
texto
Las secciones, cada una con su etiqueta en el idioma en que se generó (Propósito:, Puntos clave:, Objetivos:…) y sus puntos en líneas que empiezan por - .
Ficheros temporales de una grabación
Fichero
Contenido
recording_<fecha>.wav
Pista de la aplicación (PCM 16 bits, 44,1 kHz, estéreo).