Spezialisierter Audiorecorder für Android

Ich muss Geräusche aufnehmen, die von mechanischen Geräten ausgehen. Diese Geräusche treten zufällig alle paar Stunden auf und dauern nur etwa 1-3 Sekunden.

Um diese Aufgabe zu erfüllen, brauche ich einen Audiorecorder, der ständig läuft, aber nur aufzeichnet, wenn Audio vorhanden ist. Es gibt viele Audiorekorder, die "sprachaktiviert" sind, aber ich habe keinen gefunden, der funktioniert, da die Geräusche, die ich aufzunehmen versuche, zum Zeitpunkt der Aktivierung abgeschlossen sind.

Um dies zu erreichen, brauche ich eine App, die kontinuierlich aufzeichnet, aber nur Audio von "Soundaktivierung minus x Sekunden" behält. Es ist kein Problem, wenn 'x' festgelegt ist.

Anforderungen

  1. Android KitKat-kompatibel
  2. Kann mindestens 4 Stunden unbeaufsichtigt laufen

Einstellungen (nicht erforderlich)

  1. Gratis (kostenlos)
  2. Niedriger Batterieverbrauch während des Betriebs
  3. Kann mindestens 12 Stunden (oder länger) unbeaufsichtigt laufen

Update: Herzlichen Glückwunsch! Ich habe das Kopfgeld an @4mohit für seine/ihre Antwort vergeben. Ich führe noch Tests durch, um zu sehen, ob es für meine Aufgabe zuverlässig funktioniert. Danke auch an Steve Barnes für seine kreative Antwort.

Da ich mich noch in der Testphase befinde, bin ich für weitere Antworten offen. Ich werde weitere Updates veröffentlichen, wenn die Tests fortschreiten.

Antworten (3)

Wenn Sie nach einem Diktiergerät suchen, das kontinuierlich Audio aufzeichnen kann und die Stille überspringt und 4 Stunden lang unbeaufsichtigt laufen kann, sollten Sie sich meiner Meinung nach den Smart Voice Recorder ansehen . Es erfüllt Ihre Anforderungen an,

  • Kostenlos sein
  • Kann 12 Stunden laufen
  • Kann auch bei ausgeschaltetem Display im Hintergrund aufnehmen (stellen Sie sicher, dass auf Ihrem Gerät genügend Speicherplatz vorhanden ist)
  • Kann von 8 kHz (Telefonqualität) bis 44,1 kHz (CD-Qualität) aufnehmen

Aus der Beschreibung im Google Play Store:

Intelligenter Sprachrekorder

Screenshot des Smart Voice Recorders, der gerade aufzeichnet

Smart Voice Recorder für hochwertige Langzeit-Tonaufnahmen mit Überspringen relativer Stille im laufenden Betrieb. Zum Beispiel können Sie es für Aufzeichnungen über Nachtschlafgespräche (oder Schnarchen :)), Geschäftstreffen, einen normalen Tag Ihres Babysitters, wie Sie singen oder Gitarre spielen und so weiter verwenden. Es ist fantastisch! Und Sie können es als normales Diktiergerät mit einfacher und ansprechender Benutzeroberfläche verwenden. Versuche es! :)

HINWEIS: Diese App ist kein Anrufrekorder. Funktioniert möglicherweise auf einigen Handys nicht richtig. Benutzeroberfläche noch nicht für Tablets optimiert. Aufzeichnungen in diesem Format können nicht per Text/SMS/MMS versendet werden. Bitte zögern Sie nicht, mir Feedback per E-Mail zu senden, wenn Sie welche haben.

Merkmale:

  • automatische und manuelle Empfindlichkeitssteuerung für Skip-Stille-Modus (Beta)
  • Live-Audio-Spektrumanalysator
  • Wave/PCM-Kodierung mit einstellbarer Abtastrate (8-44 kHz)
  • Aufnahme im Hintergrund (auch bei ausgeschaltetem Display)
  • Werkzeug zur Kalibrierung der Mikrofonverstärkung
  • Aufzeichnungsprozesssteuerung speichern/anhalten/fortsetzen/abbrechen
  • Speicherung und Verzeichniswechsel (Standard: sdcard/SmartVoiceRecorder)
  • verbleibende Aufnahmezeit wird auf dem Startbildschirm angezeigt, begrenzt nur durch den verfügbaren Speicherplatz auf Ihrem Speicher (und tech. Limit 2 GB pro Datei)
  • einfach zu bedienende Aufnahmeliste
  • Senden/Teilen Sie eine Aufzeichnung per E-Mail, WhatsApp, Dropbox usw.
  • Stellen Sie eine Aufnahme mit einem Klick als Klingelton, Alarm oder Benachrichtigung ein

Berechtigungen, die diese App benötigt, sind:

  • Internetzugang (zum Anzeigen von Anzeigen und einigen Statistiken)
  • auf externen Speicher schreiben (um Aufnahmen zu speichern)
  • Ton aufnehmen
  • Wecksperre (um das Gerät am Schlafen zu hindern)
  • Schreibeinstellungen (um Standard-Systemklingelton/-benachrichtigung/-alarm festzulegen)
  • Abrechnung (für In-App-Option zum Deaktivieren von Werbung)
Vielen Dank für die Empfehlung. Leider verpassen fast alle dieser Diktiergeräte die ersten 250 ms bis 1 s der Aufnahme und funktionieren daher nicht für diese Anwendung. Dies liegt daran, dass sie erst dann mit der Aufnahme beginnen, wenn sie eine ausreichende Menge an Audio erkannt haben. Wissen Sie, ob diese spezielle App für den angegebenen Zweck geeignet ist?
Ja, es kann sicher funktionieren, es ist nicht sprachaktiviert, so dass es einen Ton für eine lange Zeit aufnehmen kann
Und es kann den gesamten leeren Raum aus der Aufnahme entfernen. Und hat auch einen Live-Audio-Spektrumanalysator
Herzlichen Glückwunsch! Ich habe das Kopfgeld an @4mohit für diese Antwort vergeben.

Wenn Sie anstelle eines Mobiltelefons einen Laptop verwenden können, können Sie dies mit python + pyaudio tun . Das Datensatzbeispiel sieht folgendermaßen aus:

"""PyAudio example: Record a few seconds of audio and save to a WAVE file."""

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

Sie können dies jedoch ganz einfach ändern, um zu überprüfen, ob die Schallpegel einen bestimmten Schwellenwert überschritten haben und ob er überschritten wurde, um den aktuellen Satz von Frames in einer Datei aufzuzeichnen, die nach Uhrzeit und Datum benannt ist.

Bestimmen, ob der Schallpegel einen bestimmten Schwellenwert überschritten hat, sollte so einfach sein wie:

loudest = max([max(chunk) for chunk in frames])
if loudest > THRESHOLD:
   # Save your frame

aber ich würde erwägen, a zu verwenden dqueue, um Ihren Frame zu speichern, und sobald die Länge des Frames erreicht ist, einen Brocken von einem Ende herausnehmen, bevor Sie zum anderen schieben, wenn Sie aufnehmen, speichern Sie den Brocken, andernfalls knallen und verwerfen. Sie könnten dann, wenn Sie jeden Chunk erhalten, einfach das Maximum dieses Chunks überprüfen und, wenn es über dem Schwellenwert liegt, einen Zähler auf die Größe des Frames plus den gewünschten Überlauf setzen, und wenn es keine aktuelle offene Wave-Datei gibt, öffnen Sie eine mit dem Namen basierend zu der Zeit, wenn es keinen gibt, dekrementiere den Zähler, wenn er über 0 ist, und schreibe in die Datei, wenn er 0 erreicht, schließe die Datei.

  • Frei
  • Android Ich glaube nicht, dass Pyaudio auf Android portiert wurde, also nein
  • Die Größe Ihres Rahmens bestimmt die Zeitspanne, bevor der Ton aufgenommen wird. Sie können das Ende der Töne auch um eine gewählte Zeit überziehen.
  • Zeitstempel in den Dateinamen würden Sie sehen lassen, wann die Geräusche waren.

Python kann auch zum Plotten und Analysieren der resultierenden Dateien wie in diesem Blog verwendet werden .

Sehr schön. Ist das ein leicht verfügbares Skript oder hast du es einfach selbst erfunden?
Das Beispielskript ist leicht verfügbar - Sie müssen ein wenig optimieren, um das zu bekommen, was Sie brauchen, aber Sie sollten in der Lage sein, es ganz einfach zu tun.
Sie könnten auch an zulko.github.io/blog/2014/07/04/… interessiert sein , das ähnliche Mechanismen verwendet, um die wichtigen Teile von Fußballspielvideos zu erkennen.
Danke für die kreativen Ideen Steve!

Verwenden Sie einfach den automatischen Audiorecorder , er hat alles, was Sie suchen, einschließlich der automatischen Aufnahme, wenn es etwas Rauschen gibt.

Bild

Diese App wurde seit über 2,5 Jahren nicht aktualisiert. Funktioniert es immer noch zuverlässig auf Kitkat (insbesondere in Anbetracht des SD-Karten-Zeugs)? Erfüllt es alle anderen Anforderungen, zB niedriger Batterieverbrauch (wie niedrig, nach Ihren Erfahrungen/Informationen)? Was macht es empfehlenswert (vorzugsweise aus eigener Erfahrung)? Bitte lesen Sie unsere Diskussion darüber, was eine Antwort von hoher Qualität ausmacht, und prüfen Sie, ob Sie Ihren Beitrag verbessern können. Vielen Dank!