Skip to content

Privacy Networking and Security

Justagwas edited this page Jul 15, 2026 · 1 revision

Privacy, Networking and Security

The practical answer

The selected audio file is decoded and transcribed on the user's computer. The transcription path does not upload the recording to a transcription service.

“Local transcription” does not mean A2M never uses the network. Depending on state and settings, it can request:

Request When
Piano Engine bundle When no valid local model is available and the user allows the download
CUDA or DirectML runtime pack When the selected GPU provider lacks a valid pack and the user allows the download
NVIDIA cuDNN archive During offered CUDA dependency setup if the user allows the download
Update manifest Automatically when enabled, or manually
Setup executable When the user chooses a supported in-app update
Project/download page When the user opens the official link or an update requires manual handling

Validation boundaries

Model, runtime, cuDNN, and update downloads have configured size limits and SHA-256 checks. Archives are extracted with path and total-size protections. Runtime packs and model bundles also receive structural and functional validation.

These checks help detect truncation, corruption, unexpected bytes, and malformed packages. An expected hash compiled into A2M is not a digital signature and does not independently establish publisher identity.

Update manifests must use HTTPS on the configured hosts. Installer links are limited to an explicit HTTPS host allowlist. Model and runtime URLs are fixed in the application configuration rather than accepted from arbitrary user input.

What A2M does not promise

  • It does not make a compromised computer safe.
  • It does not independently authenticate the semantic correctness of a model.
  • It does not prevent another program on the computer from reading accessible files.
  • It does not claim that every optional third-party codec backend has identical security behavior.

Source: http_service.py, archive_service.py, model_service.py, runtime_pack_service.py, cuda_dependency_service.py, and self_updater.py.

Clone this wiki locally