S2: RECORD_AUDIO für Termux selbst, Quelle explizit, Diagnose dreistufig

Aus dem ersten Gerätelauf: module-sles-source lädt, die Aufnahme meldet einen
kräftigen Pegel (Spitze 21658) — und trotzdem ist nichts zu hören. Drei Fehler
kamen dabei zusammen.

1. provision.sh vergab RECORD_AUDIO nur an com.termux.api. PulseAudio läuft aber
   IM Termux-Prozess und öffnet das Mikrofon von dort über OpenSL ES. Die
   Berechtigung muss com.termux haben; sonst lädt das Modul zwar, liefert aber
   nichts Brauchbares. S2 prüft den Status jetzt vorab und nennt beide Wege, ihn
   zu setzen.

2. parecord lief ohne -d und nahm damit die Standardquelle. Bei geladenem
   Sink-Modul ist das häufig dessen Monitor — der zeichnet auf, was abgespielt
   wird, nicht was am Mikrofon anliegt. Eine solche Aufnahme sieht technisch
   einwandfrei aus und enthält doch nie eine Stimme. Jetzt wird OpenSL_ES_source
   ausdrücklich gewählt.

3. 'Man hört nichts' hat drei mögliche Ursachen, die der Test nicht getrennt hat.
   Er läuft jetzt dreistufig: erst ein Testton (kommt überhaupt Ton heraus?),
   dann die Aufnahme, dann automatisches Gegenhören. Ohne Stufe 1 sagt ein
   stummes Gegenhören nichts aus.

Die Auswertung misst zusätzlich die Schwankung des Pegels. Sprache hat laute
Silben und Pausen dazwischen; ein gleichmäßiges Signal ist Brummen oder ein
Monitor-Mitschnitt. Gegen Stille, Brummen und sprachähnliches Signal getestet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan
2026-08-09 20:23:21 +02:00
co-authored by Claude Opus 5
parent eeab61a0a4
commit f08399ba1d
2 changed files with 160 additions and 74 deletions
+15 -1
View File
@@ -214,6 +214,19 @@ done
# ── Berechtigungen ───────────────────────────────────────────────────────────
kopf "Berechtigungen"
# Termux selbst braucht RECORD_AUDIO und Speicherzugriff — nicht nur Termux:API.
# PulseAudio läuft IM Termux-Prozess und öffnet das Mikrofon über OpenSL ES von
# dort aus. Eine Berechtigung, die nur Termux:API hat, nützt ihm nichts: das
# Modul lädt dann zwar, liefert aber keinen brauchbaren Ton.
for perm in \
android.permission.RECORD_AUDIO \
android.permission.READ_EXTERNAL_STORAGE \
android.permission.WRITE_EXTERNAL_STORAGE
do
adbs "${perm##*.} für Termux" pm grant "$TERMUX" "$perm" 2>/dev/null || true
done
# Termux:API bedient Kamera, Sensoren, Standort und Taschenlampe.
for perm in \
android.permission.RECORD_AUDIO \
android.permission.CAMERA \
@@ -221,9 +234,10 @@ for perm in \
android.permission.READ_EXTERNAL_STORAGE \
android.permission.WRITE_EXTERNAL_STORAGE
do
adbs "$(basename "${perm//./\/}") für Termux:API" pm grant com.termux.api "$perm" 2>/dev/null || true
adbs "${perm##*.} für Termux:API" pm grant com.termux.api "$perm" 2>/dev/null || true
done
hinweis "Fehlschläge sind normal, solange Termux:API noch nicht installiert ist."
hinweis "Eine App, die eine Berechtigung gar nicht anmeldet, lässt sich nicht beschenken."
# ── Was ADB nicht kann ───────────────────────────────────────────────────────
kopf "Von Hand zu erledigen"