Python - Alsaaudio - PTT

mumai

Cadet 2nd Year
Registriert
Jan. 2018
Beiträge
28
Hallo,
ich habe eine spez. Frage an euch Experten. Ich habe im Netz ein kleines Tool gefunden, das es mir erlaubt bei einem gefundenen Audiosignal meiner Soundkarte bei dem RS232 Adapter die PTT auf einem RTS Pin zu schalten. Das funktioniert soweit recht gut. Habe das Script etwas angepasst und einige Passagen verändert, das er sofort die Schaltung bei dem kleinsten Audiosignal schaltet.

Nun ist es so, das ich gerne möchte, das ich im Script oben eine von mir bereitgestellte Audio Datei (WAV, oder MP3) in einer Variabel angebe, und diese nach einer von mir vordefinierten Zeit in Sekunden bei einem nicht registrierten Audiosignal an das Mikrofon (Audioausgang) sendet und zusätzlich dabei den RTS Pin schaltet und beim Ende der Audiodatei die PTT schaltung storniert und das aussenden unterbricht. Wie kann ich das umsetzen? Hier mal der Codeschnipsel:
Python:
#!/usr/bin/python
import tkinter as tk
import alsaaudio, time, audioop
import serial

# COM Port
com = '/dev/ttyUSB1'
# Level wann auf Durchgang geschalten wird
dbm = 0
# Sendeverzoegerung
svz = 3
# PTT nach Level halten
lvl = 100
# Sende und Empfangslevel
rx = 0
tx = 0

ser = serial.Serial(str(com), baudrate = 9600, timeout = 3.0)
audio = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK)
audio.setformat(alsaaudio.PCM_FORMAT_S16_LE)
audio.setperiodsize(160)
audio.setchannels(1)
audio.setrate(8000)

def update():
 global rx
 global tx

 a, data = audio.read()
 if audioop.avgpp(data, 1) > dbm:
  tx = tx + 2
  if tx > svz:
   tx = tx - 1
   rx = 0;
   oled_d.config(text = 'PTT: An', fg = 'red')
   ser.setDTR(1)
   ser.setRTS(1)
 else:
  rx = rx + 2
  if rx >= lvl:
   rx = rx - 1
   tx = 0
   oled_d.config(text = 'PTT: Aus', fg = 'green')
   ser.setDTR(0)
   ser.setRTS(0)

 # Setze Fensterinhalte
 oled_a.config(text = 'Zeile 1', fg = 'grey')
 oled_b.config(text = '----------------------------------------------------------------------------------', fg = 'grey')
 oled_c.config(text = 'Level max: ' + str(dbm) + ' db   -   Signal: ' + str(audioop.avgpp(data, 1)) + ' db', fg = 'black')
 oled_e.config(text = '----------------------------------------------------------------------------------', fg = 'grey')
 oled_f.config(text = 'Zeile 5', fg = 'grey')

 # Ruhe
 time.sleep(.001)
 window.after(18, update)

# Starte den Fenstermanager
window = tk.Tk()
window.title(str('Fenstername'))
window.geometry('400x130')

oled_a = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_a.pack()
oled_b = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_b.pack()
oled_c = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_c.pack()
oled_d = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_d.pack()
oled_e = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_e.pack()
oled_f = tk.Label(text = '', font=("Ubuntu Thin", 10))
oled_f.pack()

window.after(18, update)
window.mainloop()
 
hmm ich weiß nicht zu 100% ob das mit dem Threading klappt, halt ob die Terminierung ganz genau so klappt halt wie du es dir vorstellst, denn feinjustieren des Skripts musst du am Ende eh selber machen :D , aber probier es mal so aus:

Code:
#!/usr/bin/python
import tkinter as tk
import alsaaudio
import audioop
import serial
import time
import threading
import wave
import pyaudio

# COM Port
com = '/dev/ttyUSB1'
# Level wann auf Durchgang geschalten wird
dbm = 0
# Sendeverzoegerung
svz = 3
# PTT nach Level halten
lvl = 100
# Sende und Empfangslevel
rx = 0
tx = 0

ser = serial.Serial(str(com), baudrate=9600, timeout=3.0)
audio = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK)
audio.setformat(alsaaudio.PCM_FORMAT_S16_LE)
audio.setperiodsize(160)
audio.setchannels(1)
audio.setrate(8000)

# Pfad zur Audio-Datei
audio_file_path = 'path/to/your/audio/file.wav'  # Ersetze durch den tatsächlichen Dateipfad

def play_audio():
    chunk = 1024

    # Öffne die Audiodatei
    audio_file = wave.open(audio_file_path, 'rb')

    # Initialisiere den PyAudio-Stream
    audio_player = pyaudio.PyAudio()
    stream = audio_player.open(
        format=audio_player.get_format_from_width(audio_file.getsampwidth()),
        channels=audio_file.getnchannels(),
        rate=audio_file.getframerate(),
        output=True
    )

    # Lese die Audiodaten und spiele sie ab
    data = audio_file.readframes(chunk)
    while data:
        stream.write(data)
        data = audio_file.readframes(chunk)

    # Beende den Stream und die Audio-Wiedergabe
    stream.stop_stream()
    stream.close()
    audio_player.terminate()

def update():
    global rx
    global tx

    a, data = audio.read()
    if audioop.avgpp(data, 1) > dbm:
        tx = tx + 2
        if tx > svz:
            tx = tx - 1
            rx = 0
            oled_d.config(text='PTT: An', fg='red')
            ser.setDTR(1)
            ser.setRTS(1)
            # Starte die Audio-Wiedergabe in einem separaten Thread
            threading.Thread(target=play_audio).start()
    else:
        rx = rx + 2
        if rx >= lvl:
            rx = rx - 1
            tx = 0
            oled_d.config(text='PTT: Aus', fg='green')
            ser.setDTR(0)
            ser.setRTS(0)

    # Setze Fensterinhalte
    oled_a.config(text='Zeile 1', fg='grey')
    oled_b.config(text='----------------------------------------------------------------------------------', fg='grey')
    oled_c.config(text='Level max: ' + str(dbm) + ' db   -   Signal: ' + str(audioop.avgpp(data, 1)) + ' db', fg='black')
    oled_e.config(text='----------------------------------------------------------------------------------', fg='grey')
    oled_f.config(text='Zeile 5', fg='grey')

    # Ruhe
    time.sleep(.001)
    window.after(18, update)

# Starte den Fenstermanager
window = tk.Tk()
window.title(str('Fenstername'))
window.geometry('400x130')

oled_a = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_a.pack()
oled_b = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_b.pack()
oled_c = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_c.pack()
oled_d = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_d.pack()
oled_e = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_e.pack()
oled_f = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_f.pack()

window.after(18, update)
window.mainloop()
 
Guten morgen,
vielen dank für dein Denkansatz, aber ich würde das gerne nach einer bestimmten Zeit aussenden wollen. Er soll die Aussendung der WAV Datei erst nach 15 Minuten starten, wenn zuvor kein Audiosignal festgestellt wurde. Wie realisiere ich das?
 
ja ok das ist eher einfach, da muss du die time biblithek in die update funktion implementieren ;)

(Beispiel anhand des geänderten Codes und zudem einbisschen die Variablen-Def. verschoben in einen einheitlicheren Platz.. )

Python:
#!/usr/bin/python
import tkinter as tk
import alsaaudio
import audioop
import serial
import time
import threading
import wave
import pyaudio

# COM Port
com = '/dev/ttyUSB1'
# Level wann auf Durchgang geschalten wird
dbm = 0
# Sendeverzoegerung
svz = 3
# PTT nach Level halten
lvl = 100
# Sende und Empfangslevel
rx = 0
tx = 0

ser = serial.Serial(str(com), baudrate=9600, timeout=3.0)
audio = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK)
audio.setformat(alsaaudio.PCM_FORMAT_S16_LE)
audio.setperiodsize(160)
audio.setchannels(1)
audio.setrate(8000)

# Pfad zur Audio-Datei
audio_file_path = 'path/to/your/audio/file.wav'  # Ersetze durch den tatsächlichen Dateipfad

start_time = time.time()
audio_played = False

def play_audio():
    chunk = 1024

    # Öffne die Audiodatei
    audio_file = wave.open(audio_file_path, 'rb')

    # Initialisiere den PyAudio-Stream
    audio_player = pyaudio.PyAudio()
    stream = audio_player.open(
        format=audio_player.get_format_from_width(audio_file.getsampwidth()),
        channels=audio_file.getnchannels(),
        rate=audio_file.getframerate(),
        output=True
    )

    # Lese die Audiodaten und spiele sie ab
    data = audio_file.readframes(chunk)
    while data:
        stream.write(data)
        data = audio_file.readframes(chunk)

    # Beende den Stream und die Audio-Wiedergabe
    stream.stop_stream()
    stream.close()
    audio_player.terminate()

def update():
    global rx
    global tx
    global start_time
    global audio_played

    a, data = audio.read()
    if audioop.avgpp(data, 1) > dbm:
        tx = tx + 2
        if tx > svz:
            tx = tx - 1
            rx = 0
            oled_d.config(text='PTT: An', fg='red')
            ser.setDTR(1)
            ser.setRTS(1)

            # Überprüfe, ob die Wartezeit von 15 Minuten abgelaufen ist und die Audio noch nicht abgespielt wurde
            if not audio_played and (time.time() - start_time) >= 900:  # 15 Minuten = 900 Sekunden
                # Starte die Audio-Wiedergabe in einem separaten Thread
                threading.Thread(target=play_audio).start()
                audio_played = True
    else:
        rx = rx + 2
        if rx >= lvl:
            rx = rx - 1
            tx = 0
            oled_d.config(text='PTT: Aus', fg='green')
            ser.setDTR(0)
            ser.setRTS(0)

    # Setze Fensterinhalte
    oled_a.config(text='Zeile 1', fg='grey')
    oled_b.config(text='----------------------------------------------------------------------------------', fg='grey')
    oled_c.config(text='Level max: ' + str(dbm) + ' db   -   Signal: ' + str(audioop.avgpp(data, 1)) + ' db', fg='black')
    oled_e.config(text='----------------------------------------------------------------------------------', fg='grey')
    oled_f.config(text='Zeile 5', fg='grey')

    # Ruhe
    time.sleep(.001)
    window.after(18, update)

# Starte den Fenstermanager
window = tk.Tk()
window.title(str('Fenstername'))
window.geometry('400x130')

oled_a = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_a.pack()
oled_b = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_b.pack()
oled_c = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_c.pack()
oled_d = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_d.pack()
oled_e = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_e.pack()
oled_f = tk.Label(text='', font=("Ubuntu Thin", 10))
oled_f.pack()

window.after(18, update)
window.mainloop()
 
Hallo, vielen dank für deine Mühe. Aber ich bekomme dann diese Fehlermeldung:
pttvox.py:25: DeprecationWarning: This function is deprecated. Please use the named parameter format to PCM() instead
audio.setformat(alsaaudio.PCM_FORMAT_S16_LE)
/home/480/Programme/Linux/PTT/./ts3_pttvox.py:26: DeprecationWarning: This function is deprecated. Please use the named parameter periodsize to PCM() instead
audio.setperiodsize(160)
/home/480/Programme/Linux/PTT/./ts3_pttvox.py:27: DeprecationWarning: This function is deprecated. Please use the named parameter channels to PCM() instead
audio.setchannels(1)
/home/480/Programme/Linux/PTT/./ts3_pttvox.py:28: DeprecationWarning: This function is deprecated. Please use the named parameter rate to PCM() instead
audio.setrate(8000)
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_id returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM dmix
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
python: src/common/pa_front.c:235: InitializeHostApis: Assertion `hostApi->info.defaultInputDevice < hostApi->info.deviceCount' failed.
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phonelineAbgebrochen (Speicherabzug geschrieben)

Es scheint so als könne er die Ausgabequelle nicht ansteuern bzw. finden. Kann man diese zuvor definieren?
 
ja welches python benutzt du denn eigentlich? Es könnte sein, dass du ein zu neues Python benutzt und der Python Core meldet, dass du deprecated Funktionen nutzt weil die ersteller der Libs halt nicht so schnell hinterherkommen beim Code-Refactoring weißt du, deswegen ist es wichtig zu wissen welche Version man für sein Projekt (für den jetzigen Augenblick halt) am besten benutzt :D

Python 3.11 ist halt schneller und effizienter gemacht worden, aber da wurde soviel abgeändert, dass alles refactored werden muss.

Python 3.9 hat zur Zeit die meiste Verfügbarkeit was auch den Support der Libraries angeht afaik


Zudem kann er keine richtige Konfiguration finden und einstellen weil dein ALSA und JACK-Server nicht richtig konfiguriert sind oder deprecated sind, aber ist nur die Log, man muss die Log auch anhand der spezifischen Python Version betrachten etc.
 
Derzeit nutze ich Python 3.10.6. Die Funktionen habe ich ersetzt gegen:
Python:
audio = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NORMAL,
    channels = 2,
    rate = 8000,
    format = alsaaudio.PCM_FORMAT_S16_LE,
    periodsize = 160)

und das Problem mit den "Warnungen" sind nun weg. Jedoch meckert er nach wie vor das er den Audioausgang nicht nutzen/finden kann.

Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.10/tkinter/init.py", line 1921, in call
return self.func(*args)
File "/usr/lib/python3.10/tkinter/init.py", line 839, in callit
func(*args)
File "/home/480/Programme/Linux/PTT/./ts3_pttvox.py", line 74, in update
a, data = audio.read()
alsaaudio.ALSAAudioError: Cannot read from playback PCM [default]

Edit: Fehler behoben. War eine falsche Definition. Jedoch sagt er beim absspielen folgendes:
Traceback (most recent call last):
File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/lib/python3.10/threading.py", line 953, in run
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:165:(snd_config_get_card) self._target(*self._args, **self._kwargs)
Cannot get card index for 0 File "/home/480/Programme/Linux/PTT/./ts3_pttvox.py", line 50, in play_audio

stream = audio_player.open(
File "/usr/lib/python3/dist-packages/pyaudio.py", line 750, in open
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
stream = Stream(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/pyaudio.py", line 441, in init
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_id returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM dmix
self._stream = pa.open(**arguments)
OSError: [Errno -9996] Invalid output device (no default output device)
Speicherzugriffsfehler (Speicherabzug geschrieben)
 
Zuletzt bearbeitet:
Zurück
Oben