feature: add asound.conf and PulseAudio set up
This commit is contained in:
parent
e787bde452
commit
7218e59331
55
installer.sh
55
installer.sh
@ -9,11 +9,64 @@ if ! sudo apt-get install -y python3-pip python3-gpiozero; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Use --user flag for pip installations
|
# Use --user flag for pip installations
|
||||||
if ! pip3 install --user pydub pyaudio PyYAML; then
|
if ! pip3 install --user pydub pyaudio PyYAML sounddevice; then
|
||||||
echo "Failed to install Python packages."
|
echo "Failed to install Python packages."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Backup and modify PulseAudio configuration
|
||||||
|
echo "Backing up and modifying PulseAudio configuration..."
|
||||||
|
sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.backup
|
||||||
|
echo "default-fragments = 5" | sudo tee -a /etc/pulse/default.pa
|
||||||
|
echo "default-fragment-size-msec = 2" | sudo tee -a /etc/pulse/default.pa
|
||||||
|
|
||||||
|
# Restart PulseAudio
|
||||||
|
pulseaudio -k
|
||||||
|
pulseaudio --start
|
||||||
|
|
||||||
|
# Display available sound cards and devices
|
||||||
|
echo "Available sound cards and devices:"
|
||||||
|
aplay -l
|
||||||
|
|
||||||
|
# Prompt user for ALSA configuration values
|
||||||
|
echo "Configuring ALSA..."
|
||||||
|
read -p "Enter the card number for the default playback card (e.g., 0, 1): " playback_card
|
||||||
|
read -p "Enter the card number for the default capture card (e.g., 0, 1): " capture_card
|
||||||
|
|
||||||
|
# Use a consolidated prompt for sample rate to avoid duplication
|
||||||
|
read -p "Enter the default sample rate (e.g., 44100): " sample_rate
|
||||||
|
while ! [[ "$sample_rate" =~ ^[89][0-9]{3}$|^[1-9][0-9]{4}$|^[1][0-8][0-9]{4}$|192000$ ]]; do
|
||||||
|
echo "Invalid sample rate. Please enter a value between 8000 and 192000."
|
||||||
|
read -p "Enter the default sample rate (e.g., 44100): " sample_rate
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Enter the bit depth (16, 24, 32): " bit_depth
|
||||||
|
while ! [[ "$bit_depth" =~ ^(16|24|32)$ ]]; do
|
||||||
|
echo "Invalid bit depth. Please choose from 16, 24, or 32."
|
||||||
|
read -p "Enter the bit depth (16, 24, 32): " bit_depth
|
||||||
|
done
|
||||||
|
|
||||||
|
# Write ALSA configuration to /etc/asound.conf
|
||||||
|
sudo tee /etc/asound.conf > /dev/null <<EOF
|
||||||
|
defaults.pcm.rate_converter "samplerate"
|
||||||
|
defaults.pcm.dmix.rate $sample_rate
|
||||||
|
defaults.pcm.dmix.format S$bit_depth
|
||||||
|
defaults.ctl.card $playback_card
|
||||||
|
defaults.pcm.card $playback_card
|
||||||
|
defaults.pcm.device 0
|
||||||
|
defaults.pcm.subdevice -1
|
||||||
|
defaults.pcm.nonblock 1
|
||||||
|
defaults.pcm.compat 0
|
||||||
|
pcm.!default {
|
||||||
|
type hw
|
||||||
|
card $playback_card
|
||||||
|
}
|
||||||
|
ctl.!default {
|
||||||
|
type hw
|
||||||
|
card $capture_card
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
# Get the directory of the currently executing script
|
# Get the directory of the currently executing script
|
||||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
import wave
|
import wave
|
||||||
from typing import List
|
|
||||||
|
|
||||||
import pyaudio
|
import pyaudio
|
||||||
from pydub import AudioSegment
|
from pydub import AudioSegment
|
||||||
@ -138,7 +137,7 @@ class AudioInterface:
|
|||||||
start = time.time()
|
start = time.time()
|
||||||
while self.off_hook_condition():
|
while self.off_hook_condition():
|
||||||
if time.time() - start < self.recording_limit:
|
if time.time() - start < self.recording_limit:
|
||||||
data = self.stream.read(self.chunk, exception_on_overflow=True)
|
data = self.stream.read(self.chunk, exception_on_overflow=False)
|
||||||
self.frames.append(data)
|
self.frames.append(data)
|
||||||
else:
|
else:
|
||||||
# Notify the user that their recording time is up
|
# Notify the user that their recording time is up
|
||||||
|
Loading…
Reference in New Issue
Block a user