Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Python Audio-Aufnahme

Mitglied: tommax

tommax (Level 1) - Jetzt verbinden

15.07.2015 um 17:00 Uhr, 2568 Aufrufe

Hallo liebe Kollegen!

Ich habe leider ein Problem mit dem folgenden Python-Script, das zur Aufzeichnung von Tondateien beim Erreichen eines Schwellenwert von 30 db benutzt wird. Das Script zeichnet erst dann auf, wenn eine Sound duch Mikrophone erkannt wird.
Das Script läuft beim ersten Durchgang ohne Probleme und speichert die wav.Datei in dem angegeben Ordner.
Danach erscheint wieder "Waiting for Speech" aber dann wird kein Stream mehr aufgezeichnet und das Script bleibt hängen !?

Ich weiss leider nicht, woran es liegt !
Vielleicht kann mir jemnad helfen ...

01.

02.
import pyaudio
03.
import math
04.
import struct
05.
import wave
06.

07.
Threshold = 30
08.

09.
SHORT_NORMALIZE = (1.0/32768.0)
10.
chunk = 1024
11.
FORMAT = pyaudio.paInt16
12.
CHANNELS = 1
13.
RATE = 16000
14.
swidth = 2
15.
Max_Seconds = 10
16.
TimeoutSignal=((RATE / chunk * Max_Seconds) + 2)
17.
silence = True
18.
FileNameTmp = '/home/pi/demo.wav'
19.
Time=0
20.
all =[]
21.

22.
def GetStream(chunk):
23.
    return stream.read(chunk)
24.

25.

26.
def rms(frame):
27.
        count = len(frame)/swidth
28.
        format = "%dh"%(count)
29.
        shorts = struct.unpack( format, frame )
30.

31.
        sum_squares = 0.0
32.
        for sample in shorts:
33.
            n = sample * SHORT_NORMALIZE
34.
            sum_squares += n*n
35.
        rms = math.pow(sum_squares/count,0.5);
36.

37.
        return rms * 1000
38.

39.
def WriteSpeech(WriteData):
40.
    stream.stop_stream()
41.
    stream.close()
42.
    p.terminate()
43.
    wf = wave.open(FileNameTmp, 'wb')
44.
    wf.setnchannels(CHANNELS)
45.
    wf.setsampwidth(p.get_sample_size(FORMAT))
46.
    wf.setframerate(RATE)
47.
    wf.writeframes(WriteData)
48.
    wf.close()
49.

50.

51.

52.
def KeepRecord(TimeoutSignal, LastBlock):
53.

54.

55.
    all.append(LastBlock)
56.
    for i in range(0, TimeoutSignal):
57.
        try:
58.
            data = GetStream(chunk)
59.
        except:
60.
            continue
61.
        #I chage here (new Ident)
62.
        all.append(data)
63.

64.
    print "end record after timeout";
65.
    data = ''.join(all)
66.
    print "write to File";
67.
    WriteSpeech(data)
68.
    silence = True
69.
    Time=0
70.
    listen(silence,Time)     
71.

72.
def listen(silence,Time):
73.
    print "waiting for Speech"
74.
    while silence:
75.

76.
        try:
77.

78.
            input = GetStream(chunk)
79.

80.
        except:
81.

82.
            continue
83.

84.

85.
        rms_value = rms(input)
86.

87.
        if (rms_value > Threshold):
88.

89.
            silence=False
90.

91.
            LastBlock=input
92.

93.
            print "I'm Recording...."
94.
            KeepRecord(TimeoutSignal, LastBlock)
95.

96.
        Time = Time + 1
97.

98.
        if (Time > TimeoutSignal):
99.
            print "Time Out No Speech Detected"
100.
            sys.exit()
101.

102.
p = pyaudio.PyAudio()
103.

104.
stream = p.open(format = FORMAT,
105.
    channels = CHANNELS,
106.
    rate = RATE,
107.
    input = True,
108.
    output = True,
109.
    frames_per_buffer = chunk)
110.

111.

112.
listen(silence,Time) 
113.

114.

Danke im Voraus für jede Hilfe !

Gruß
tom

Ähnliche Inhalte
Python
Python sshpass
gelöst Frage von tommaxPython2 Kommentare

Hallo zusammen, ich habe ein Problem, was mich langsam zum Verzweifeln treibt Ich habe 2 Raspberrys, die ich einfach ...

Python

Verschlüsslung - Alternative zu python-gnupg? (Python)

gelöst Frage von clragonPython4 Kommentare

Guten Morgen liebe Mit-Programmierer Aktuell versuche ich asynchrone Datei-Verschlüsselung, das heißt, eine Datei synchron verschlüsseln und dann das ganze ...

Python

Python - ausgabe formatieren

Frage von BadFsaadKlPython

Hallo zusammen, ich habe ein kleines Python Script geschrieben, welches als Ziel hat, mir alle Verfügbaren Lunix Updates anzuzeigen, ...

Python

Python IMAP Idle Problem

Frage von tingelPython

Hallo zusammen, ich habe in Python ein kleines Scirpt, welches Mail abruft und diese auswertet. Das läuft und läuft. ...

Neue Wissensbeiträge
Off Topic
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 1 TagOff Topic4 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 1 TagWindows 107 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 2 TagenE-Mail11 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Outlook & Mail

Outlook 2016 stürzt ab, wenn man ein (at)- Zeichen im Text einer neuen E-Mail schreibt

Tipp von Enriqe vor 2 TagenOutlook & Mail4 Kommentare

Bei uns in der Firma häuften sich die Fälle, bei denen sich Outlook kommentarlos verabschiedet, wenn man ein - ...

Heiß diskutierte Inhalte
Hyper-V
Novell virtualisieren
Frage von spoboeHyper-V21 Kommentare

Hallo zusammen, ich habe absolut keine Ahnung von Novell, aber wir haben hier ein ganz altes Schätzchen (vermutlich Novell ...

Netzwerkmanagement
Gateprotect Firewall - Internetseiten werden teilw. nicht geladen
Frage von KivasFNetzwerkmanagement16 Kommentare

Morgen Zusammen, ich habe ein Problem mit einer Gateprotect Firewall welches mir echt Kopfschmerzen bereitet. Die Firewall hängt an ...

Router & Routing
HP 2920 als Router konfigurieren. Bitte um Unterstützung
gelöst Frage von suedi123Router & Routing16 Kommentare

Liebe Forumsmitglieder, ich habe hier ein Problem, bei welchem ich nicht weiterkomme, weil ich mich zu wenig mit der ...

Server-Hardware
Office 365 vs. eigene IT für kleine Unternehmen
Frage von Schlosser87Server-Hardware15 Kommentare

Hallo Community, Ich bin Geschäftsführer eines kleinen Unternehmens mit 20 Mitarbeitern. Ich muss in den kommenden Wochen eine Entscheidung ...