Программа может улавливать звуки, отличные от номеров бинго. Мне нужен способ фильтровать входной сигнал, чтобы гарантировать, что он обнаруживает только цифры.
Качество захвата звука можно улучшить, так как иногда моему дедушке трудно слышать цифры, особенно в шумной обстановке.
Ниже код, который я написал на данный момент:
Код: Выделить всё
import pyaudio
from vosk import Model, KaldiRecognizer
import json # Import for handling the result as a JSON object
# Function to listen for numbers
def listen_for_number():
# Path to the Vosk model
model = Model("model/vosk-model") # Change this path if it's different
recognizer = KaldiRecognizer(model, 16000)
# Initialize microphone
mic = pyaudio.PyAudio()
stream = mic.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=4000)
stream.start_stream()
print("Listening...")
while True:
# Capture audio in chunks
data = stream.read(4000)
if recognizer.AcceptWaveform(data):
result = recognizer.Result()
try:
# Convert the result to JSON
result_json = json.loads(result)
text = result_json.get("text", "")
if text:
print(f"You said: {text}")
except json.JSONDecodeError:
print("Error decoding the audio result.")
continue
# Run the listening function
if __name__ == "__main__":
listen_for_number()
Как отфильтровать ненужные звуки, чтобы программа обнаруживала только номера бинго.
Предложения для улучшения качества захвата звука, поскольку моему дедушке иногда трудно расслышать цифры из-за фонового шума.
Кроме того, я готов рассмотреть другие языки программирования, если они могут обеспечить лучшее решение этой задачи.
Спасибо за ваше время и помощь.
Подробнее здесь: https://stackoverflow.com/questions/793 ... g-impaired