Used Pyaudion for Mac os

This commit is contained in:
Sohail Hosseini 2023-08-24 18:35:07 -04:00
parent 7264e73508
commit 540bfb1bf7
5 changed files with 21 additions and 23 deletions

View File

@ -1,5 +1,5 @@
import custom_speech_recognition as sr
import pyaudiowpatch as pyaudio
import pyaudio
from datetime import datetime
RECORD_TIMEOUT = 3
@ -38,22 +38,20 @@ class DefaultMicRecorder(BaseRecorder):
class DefaultSpeakerRecorder(BaseRecorder):
def __init__(self):
with pyaudio.PyAudio() as p:
wasapi_info = p.get_host_api_info_by_type(pyaudio.paWASAPI)
default_speakers = p.get_device_info_by_index(wasapi_info["defaultOutputDevice"])
if not default_speakers["isLoopbackDevice"]:
for loopback in p.get_loopback_device_info_generator():
if default_speakers["name"] in loopback["name"]:
default_speakers = loopback
break
else:
print("[ERROR] No loopback device found.")
p = pyaudio.PyAudio()
source = sr.Microphone(speaker=True,
device_index= default_speakers["index"],
sample_rate=int(default_speakers["defaultSampleRate"]),
chunk_size=pyaudio.get_sample_size(pyaudio.paInt16),
channels=default_speakers["maxInputChannels"])
# Get default input device information
default_input_device_info = p.get_default_input_device_info()
source = sr.Microphone(
device_index=default_input_device_info["index"],
sample_rate=int(default_input_device_info["defaultSampleRate"]),
chunk_size=pyaudio.get_sample_size(pyaudio.paInt16),
channels=default_input_device_info["maxInputChannels"]
)
super().__init__(source=source, source_name="Speaker")
self.adjust_for_noise("Default Speaker", "Please make or play some noise from the Default Speaker...")
self.adjust_for_noise("Default Speaker", "Please make or play some noise from the Default Speaker...")
# Don't forget to close PyAudio object when you're done
p.terminate()

View File

@ -7,7 +7,7 @@ import tempfile
import custom_speech_recognition as sr
import io
from datetime import timedelta
import pyaudiowpatch as pyaudio
import pyaudio
from heapq import merge
PHRASE_TIMEOUT = 3.05

View File

@ -16,7 +16,7 @@ Follow these steps to set up and run Ecoute on your local machine.
### 📋 Prerequisites
- Python >=3.8.0
- An OpenAI API key that can access OpenAI API (set up a paid account OpenAI account)
- An OpenAI API key
- Windows OS (Not tested on others)
- FFmpeg

View File

@ -107,7 +107,7 @@ class Microphone(AudioSource):
Imports the pyaudio module and checks its version. Throws exceptions if pyaudio can't be found or a wrong version is installed
"""
try:
import pyaudiowpatch as pyaudio
import pyaudio
except ImportError:
raise AttributeError("Could not find PyAudio; check installation")
from distutils.version import LooseVersion

View File

@ -3,6 +3,6 @@ openai-whisper==20230314
Wave==0.0.2
openai==0.27.6
customtkinter==5.1.3
PyAudioWPatch==0.2.12.5
--extra-index-url https://download.pytorch.org/whl/cu117
PyAudio # for Mac
# --extra-index-url https://download.pytorch.org/whl/cu117
torch