← Новый алгоритм (sonifier-v2)

Сонификаторы

Описание восьми алгоритмов сонификации ЭМГ на oleviia.ru: логика, обоснование, блок-схемы.

Скачать Markdown (.md) Скачать HTML

Общие входные данные

Все алгоритмы работают на одном трайле — записи написания одной цифры 0–9. Вход: emg_env_0…7 (8 каналов, 1 кГц). Дополнительно: x, y, onpaper, type, trial. Метка цифры в звук при прослушивании не подставляется.

Каналы по Lebedev (2009): ch0–3 кисть, ch4–7 предплечье.

№IDНазваниеВыход
14comp-v14-comp (PCA + пентатоника)моно
2pmson-a-v1PMsonAIстерео
3neuro-interspace-v1NeuroInterspaceстерео
4ivanenko-synergy-v1Synergy5 (Ivanenko)моно
5lebedev-wiener-v1Lebedev-Wienerстерео
6lebedev-oracle-v1Lebedev-Oracleстерео
7lebedev-template-v1Lebedev-Templateмоно
8lebedev-voice-v1Lebedev-Voice (RU)моно TTS

1. 4-comp (PCA + пентатоника)

ID: 4comp-v1

Логика: 8 каналов → z-score → PCA (4 компоненты) → усреднение по 100 мс → пентатоника → 4 синуса на блок.

Обоснование: baseline проекта; PCA сжимает избыточность; пентатоника даёт согласные интервалы; 100 мс ≈ 10 Гц (как в Lebedev).

flowchart LR EMG["8× emg_env"] --> Z["Z-score"] Z --> PCA["PCA 4 PC"] PCA --> Chunk["100 мс"] Chunk --> Pent["Пентатоника"] Pent --> WAV["Моно WAV"]

2. PMsonAI

ID: pmson-a-v1

Логика: Hunt/Dyson PMson — один тон: pitch ← средняя огибающая, loudness ← √E, pan ← кисть (ch0–3) vs предплечье (ch4–7), attack-клики на пиках.

Обоснование: непрерывный ритм штриха; разделение параметров звука; анатомический pan по Lebedev Table 1.

flowchart LR EMG["8× emg_env"] --> E["Огибающая E"] EMG --> Pan["Pan кисть/предплечье"] E --> Pitch["Pitch"] E --> Loud["Loudness"] E --> Click["Attack-клики"] Pitch --> Out["Стерео"] Loud --> Out Pan --> Out Click --> Out

3. NeuroInterspace

ID: neuro-interspace-v1

Логика: 8 каналов → ноты C-dur (C3/E3/G3 … C5/E5); каждые 25 мс — top-2 активных канала → интервал (низ L, верх R).

Обоснование: консонантные интервалы; последовательность отражает смену доминирующих мышц.

flowchart LR EMG["8 каналов"] --> Hop["25 мс"] Hop --> Top2["Top-2"] Top2 --> Int["Интервал L/R"] Int --> WAV["Стерео"]

4. Synergy5 (Ivanenko)

ID: ivanenko-synergy-v1

Логика: ресемпл 200 точек → PCA корреляций + varimax → 5 синергий → каждая → пентатоническая частота × амплитуда score.

Обоснование: адаптация Ivanenko et al. 2004 (ходьба); моторные «примитивы»; нормализация длины жеста.

flowchart LR EMG["8× emg_env"] --> R200["200 точек"] R200 --> Var["PCA+varimax"] Var --> S5["5 синергий"] S5 --> Pent["5 частот"] Pent --> WAV["Моно"]

5. Lebedev-Wiener (kinematic)

ID: lebedev-wiener-v1

Логика: Wiener EMG(+лаги) → x̂, ŷ; heading → pitch, speed → loudness, x → pan; compound EMG → паузы.

Обоснование: Lebedev 2009 восстанавливает траекторию из EMG; форма штриха несёт информацию о цифре.

flowchart LR EMG["EMG+лаги"] --> W["Wiener"] W --> XY["x̂, ŷ"] XY --> Kin["pitch/pan/loud"] Kin --> WAV["Стерео"]

6. Lebedev-Oracle (x,y)

ID: lebedev-oracle-v1

Логика: тот же синтез, что Wiener, но x,y с планшета (ground truth).

Обоснование: верхняя граница — «идеальная» кинематика для оценки потолка различимости.

flowchart LR XY["x, y планшет"] --> Kin["pitch/pan/loud"] Kin --> WAV["Стерео"]

7. Lebedev-Template (residual)

ID: lebedev-template-v1

Логика: 35×100 мс × 8 каналов → вектор; residual vs шаблон цифры; корреляция с 10 прототипами → 10 «голосов» + residual carrier.

Обоснование: пайплайн распознавания Lebedev (~90% accuracy); звук отклонения от типичного паттерна цифры.

flowchart LR EMG["8× emg_env"] --> Bins["35×100 мс"] Bins --> Res["Residual"] Bins --> Corr["Corr 0–9"] Res --> Synth["Синтез"] Corr --> Synth Synth --> WAV["Моно"]

8. Lebedev-Voice (RU)

ID: lebedev-voice-v1

Логика: ground-truth type → русское слово (ноль…девять) → предзаписанный WAV (espeak-ng).

Обоснование: верхняя граница распознавания Lebedev 2009 (~90% по EMG); аналог Oracle для метки цифры.

flowchart LR Type["type 0–9"] --> Word["RU слово"] Word --> TTS["WAV TTS"] TTS --> Out["Моно"]

Сравнение

flowchart TB subgraph emg [Только EMG] A1["4-comp"] A2["PMsonAI"] A3["NeuroInterspace"] A4["Synergy5"] A7["Template"] end subgraph kin [Кинематика] A5["Wiener"] A6["Oracle"] end EMG2["emg_env"] --> emg EMG2 --> A5 Tab["x,y"] --> A6

oleviia.ru · Sonifier v2 · 2026