if lsmod | grep -q speakup_soft; then
	N=$(ls /sys/class/sound/card*/id | wc -l)
	case $N in
		0)
			echo No sound card detected, can not do software speech synthesis... Press enter to continue anyway.
			read
			;;
		1)
			# Just one card, can not be wrong
			echo 0 > /var/run/espeakup.card
			/usr/bin/espeakup > /var/log/espeakup.log 2>&1
			;;
		*)
			# Several cards, make the user choose
			CARD=0
			while [ "$CARD" = 0 ]
			do
				for i in $( seq 0 $(($N-1)) )
				do
					ALSA_CARD=$(cat /sys/class/sound/card$i/id) /usr/bin/espeakup >> /var/log/espeakup.log 2>&1
					while ! [ -r /var/run/espeakup.pid ]
					do
						sleep 0.1
					done
					pid=$(cat /var/run/espeakup.pid)
					echo Please type $(($i + 1)) to select this sound board, or 0 to hear again.
					# Give enough time for the speech
					sleep 5
					kill $pid
				done
				read CARD
				if [ "$CARD" -gt $N ]
				then
					CARD=0
				fi
			done
			CARD=$(($CARD - 1))
			echo $CARD > /var/run/espeakup.card
			ALSA_CARD=$(cat /sys/class/sound/card$CARD/id) /usr/bin/espeakup >> /var/log/espeakup.log 2>&1
	esac
fi
