# samsunglabs/samsone architecture

> Architecture diagram of the GitHub repository samsunglabs/samsone, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samsunglabs/samsone
- Repository: https://github.com/samsunglabs/samsone

## Overview

Samsone is an open small-audio-language-model product with Python inference, model training/evaluation, and an Android on-device application. The main user workflow is supplying audio and a prompt to a selected model and receiving generated text; its internal path encodes audio, projects audio features into the text model, and generates a response. Training and benchmark evaluation are separate product branches. Android UI and benchmark modules appear in the tree and README, but their implementation was not sampled, so their internal wiring is kept conservative.

Main entry points: [`src/samsone/models/multimodal/audio_lm.py`](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/multimodal/audio_lm.py) (Audio LM), [`src/samsone/inference/models.py`](https://github.com/samsunglabs/samsone/blob/main/src/samsone/inference/models.py) (Python Model API), [`src/samsone/data/datamodules/audio_text_datamodules.py`](https://github.com/samsunglabs/samsone/blob/main/src/samsone/data/datamodules/audio_text_datamodules.py) (Audio Text Data), [`src/samsone/experiments/audio_lm_experiment.py`](https://github.com/samsunglabs/samsone/blob/main/src/samsone/experiments/audio_lm_experiment.py) (Training Experiment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_python["Python Inference"]
  node_py_api["Python Model API<br/>[models.py]"]
  node_py_cli["Inference CLI<br/>[cli.py]"]
end

subgraph group_model["SALM Model"]
  node_audio_encoder["Audio Encoder<br/>[encoders.py]"]
  node_pooler["Audio Pooling<br/>[poolers.py]"]
  node_projector["Audio Projector<br/>[projectors.py]"]
  node_audio_lm["Audio LM<br/>[audio_lm.py]"]
  node_text_lm["Text Language Model<br/>[lm.py]"]
end

subgraph group_training["Data And Training"]
  node_train_data["Audio Text Data"]
  node_datasets["Dataset Builders"]
  node_preprocess["Audio Text Processing"]
  node_experiment["Training Experiment"]
end

subgraph group_evaluation["Evaluation"]
  node_benchmark_data["Evaluation Data<br/>[eval_datasets.py]"]
  node_base_eval["Evaluator Base<br/>[base.py]"]
  node_mmau_eval["MMAU Evaluator<br/>[evaluator.py]"]
  node_mmaupro_eval["MMAU Pro Evaluator<br/>[evaluator.py]"]
end

subgraph group_android["Android App"]
  node_activity["Android Activity<br/>[MainActivity.kt]"]
  node_main_screen["Main Screen<br/>[MainScreen.kt]"]
  node_main_vm["Main ViewModel"]
  node_audio_picker["Audio File Picker<br/>[AudioFilePicker.kt]"]
  node_audio_player["Audio Player<br/>[AudioPlayer.kt]"]
  node_model_selector["Model Selector"]
  node_android_benchmark["Benchmark Screen<br/>[BenchmarkScreen.kt]"]
  node_benchmark_vm["Benchmark Runner"]
end

node_py_user(("Python User"))
node_checkpoint["Release Checkpoints"]
node_android_user(("Android User"))

node_py_user -->|"calls"| node_py_api
node_py_user -->|"invokes"| node_py_cli
node_py_cli -->|"loads model"| node_py_api
node_py_api -.->|"downloads"| node_checkpoint
node_py_api -->|"runs inference"| node_audio_lm
node_audio_lm -->|"encodes audio"| node_audio_encoder
node_audio_lm -->|"projects features"| node_projector
node_audio_encoder -->|"pools embeddings"| node_pooler
node_audio_lm -->|"generates text"| node_text_lm
node_train_data -->|"builds batches"| node_datasets
node_train_data -->|"prepares inputs"| node_preprocess
node_experiment -->|"trains and generates"| node_audio_lm
node_experiment -->|"consumes batches"| node_train_data
node_benchmark_data -->|"uses datasets"| node_datasets
node_base_eval -->|"specialized by"| node_mmau_eval
node_base_eval -->|"specialized by"| node_mmaupro_eval
node_android_user -->|"opens app"| node_activity
node_activity -->|"renders"| node_main_screen
node_android_user -->|"selects audio"| node_audio_picker
node_android_user -->|"chooses model"| node_model_selector
node_android_user -->|"runs benchmark"| node_android_benchmark
node_android_benchmark -->|"uses runner"| node_benchmark_vm

click node_py_api "https://github.com/samsunglabs/samsone/blob/main/src/samsone/inference/models.py"
click node_py_cli "https://github.com/samsunglabs/samsone/blob/main/src/samsone/inference/cli.py"
click node_audio_encoder "https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/audio/encoders.py"
click node_pooler "https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/audio/poolers.py"
click node_projector "https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/projectors.py"
click node_audio_lm "https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/multimodal/audio_lm.py"
click node_text_lm "https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/text/lm.py"
click node_train_data "https://github.com/samsunglabs/samsone/blob/main/src/samsone/data/datamodules/audio_text_datamodules.py"
click node_datasets "https://github.com/samsunglabs/samsone/tree/main/src/samsone/data/datasets"
click node_preprocess "https://github.com/samsunglabs/samsone/tree/main/src/samsone/data/preprocessing"
click node_experiment "https://github.com/samsunglabs/samsone/blob/main/src/samsone/experiments/audio_lm_experiment.py"
click node_benchmark_data "https://github.com/samsunglabs/samsone/blob/main/src/samsone/data/datasets/eval_datasets.py"
click node_base_eval "https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/base.py"
click node_mmau_eval "https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/MMAU/evaluator.py"
click node_mmaupro_eval "https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/MMAUPro/evaluator.py"
click node_activity "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/MainActivity.kt"
click node_main_screen "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/screen/MainScreen.kt"
click node_main_vm "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/MainScreenViewModel.kt"
click node_audio_picker "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/AudioFilePicker.kt"
click node_audio_player "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/AudioPlayer.kt"
click node_model_selector "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/ModelSelectorDialog.kt"
click node_android_benchmark "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/screen/BenchmarkScreen.kt"
click node_benchmark_vm "https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/BenchmarkViewModel.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_py_api,node_py_cli,node_py_user,node_android_user toneBlue
class node_audio_encoder,node_pooler,node_projector,node_audio_lm,node_text_lm toneAmber
class node_train_data,node_datasets,node_preprocess,node_experiment toneMint
class node_benchmark_data,node_base_eval,node_mmau_eval,node_mmaupro_eval toneRose
class node_activity,node_main_screen,node_main_vm,node_audio_picker,node_audio_player,node_model_selector,node_android_benchmark,node_benchmark_vm,node_checkpoint toneIndigo
```

## Components

### Python Inference

- [Python Model API](https://github.com/samsunglabs/samsone/blob/main/src/samsone/inference/models.py): `src/samsone/inference/models.py`
- [Inference CLI](https://github.com/samsunglabs/samsone/blob/main/src/samsone/inference/cli.py): `src/samsone/inference/cli.py`

### SALM Model

- [Audio Encoder](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/audio/encoders.py): `src/samsone/models/audio/encoders.py`
- [Audio Pooling](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/audio/poolers.py): `src/samsone/models/audio/poolers.py`
- [Audio Projector](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/projectors.py): `src/samsone/models/projectors.py`
- [Audio LM](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/multimodal/audio_lm.py): `src/samsone/models/multimodal/audio_lm.py`
- [Text Language Model](https://github.com/samsunglabs/samsone/blob/main/src/samsone/models/text/lm.py): `src/samsone/models/text/lm.py`

### Data And Training

- [Audio Text Data](https://github.com/samsunglabs/samsone/blob/main/src/samsone/data/datamodules/audio_text_datamodules.py): `src/samsone/data/datamodules/audio_text_datamodules.py`
- [Dataset Builders](https://github.com/samsunglabs/samsone/tree/main/src/samsone/data/datasets): `src/samsone/data/datasets`
- [Audio Text Processing](https://github.com/samsunglabs/samsone/tree/main/src/samsone/data/preprocessing): `src/samsone/data/preprocessing`
- [Training Experiment](https://github.com/samsunglabs/samsone/blob/main/src/samsone/experiments/audio_lm_experiment.py): `src/samsone/experiments/audio_lm_experiment.py`

### Evaluation

- [Evaluation Data](https://github.com/samsunglabs/samsone/blob/main/src/samsone/data/datasets/eval_datasets.py): `src/samsone/data/datasets/eval_datasets.py`
- [Evaluator Base](https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/base.py): `src/samsone/evaluation/base.py`
- [MMAU Evaluator](https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/MMAU/evaluator.py): `src/samsone/evaluation/MMAU/evaluator.py`
- [MMAU Pro Evaluator](https://github.com/samsunglabs/samsone/blob/main/src/samsone/evaluation/MMAUPro/evaluator.py): `src/samsone/evaluation/MMAUPro/evaluator.py`

### Android App

- [Android Activity](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/MainActivity.kt): `android/app/src/main/java/com/samsung/samsone/MainActivity.kt`
- [Main Screen](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/screen/MainScreen.kt): `android/app/src/main/java/com/samsung/samsone/presentation/screen/MainScreen.kt`
- [Main ViewModel](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/MainScreenViewModel.kt): `android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/MainScreenViewModel.kt`
- [Audio File Picker](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/AudioFilePicker.kt): `android/app/src/main/java/com/samsung/samsone/presentation/components/AudioFilePicker.kt`
- [Audio Player](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/AudioPlayer.kt): `android/app/src/main/java/com/samsung/samsone/presentation/components/AudioPlayer.kt`
- [Model Selector](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/components/ModelSelectorDialog.kt): `android/app/src/main/java/com/samsung/samsone/presentation/components/ModelSelectorDialog.kt`
- [Benchmark Screen](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/screen/BenchmarkScreen.kt): `android/app/src/main/java/com/samsung/samsone/presentation/screen/BenchmarkScreen.kt`
- [Benchmark Runner](https://github.com/samsunglabs/samsone/blob/main/android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/BenchmarkViewModel.kt): `android/app/src/main/java/com/samsung/samsone/presentation/viewmodel/BenchmarkViewModel.kt`

### Other components

- **Python User**
- **Release Checkpoints**
- **Android User**

## Connections

- Python User → Python Model API: calls
- Python User → Inference CLI: invokes
- Inference CLI → Python Model API: loads model
- Python Model API → Release Checkpoints: downloads
- Python Model API → Audio LM: runs inference
- Audio LM → Audio Encoder: encodes audio
- Audio LM → Audio Projector: projects features
- Audio Encoder → Audio Pooling: pools embeddings
- Audio LM → Text Language Model: generates text
- Audio Text Data → Dataset Builders: builds batches
- Audio Text Data → Audio Text Processing: prepares inputs
- Training Experiment → Audio LM: trains and generates
- Training Experiment → Audio Text Data: consumes batches
- Evaluation Data → Dataset Builders: uses datasets
- Evaluator Base → MMAU Evaluator: specialized by
- Evaluator Base → MMAU Pro Evaluator: specialized by
- Android User → Android Activity: opens app
- Android Activity → Main Screen: renders
- Android User → Audio File Picker: selects audio
- Android User → Model Selector: chooses model
- Android User → Benchmark Screen: runs benchmark
- Benchmark Screen → Benchmark Runner: uses runner
