From 0244cfeed46576d3698e5cb050c9e91c47672dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Hedenstr=C3=B6m?= <erik@hedenstroem.com> Date: Tue, 18 Jun 2024 14:00:57 +0000 Subject: [PATCH] Cleaned up unused vars --- .gitignore | 1 + README.md | 10 ++++++ openai_stt/stt.py | 24 ++++--------- requirements.txt | 85 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 .gitignore create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d17dae --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.venv diff --git a/README.md b/README.md index b102f73..9b41761 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,15 @@ # Custom Components +## Dev Environment + +```sh +python3 -m venv .venv +source .venv/bin/activate +python3 -m pip install wheel +pip3 install homeassistant +pip3 freeze > requirements.txt +``` + ## OpenAI Whisper API STT Integration works for Assist pipelines. diff --git a/openai_stt/stt.py b/openai_stt/stt.py index 6c02352..0f1f105 100644 --- a/openai_stt/stt.py +++ b/openai_stt/stt.py @@ -21,50 +21,40 @@ from homeassistant.components.stt import ( from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv import wave -import io CONF_API_KEY = 'api_key' -DEFAULT_LANG = 'en-US' OPENAI_STT_URL = "https://api.openai.com/v1/audio/transcriptions" CONF_MODEL = 'model' CONF_URL = 'url' -CONF_PROMPT = 'prompt' -CONF_TEMPERATURE = 'temperature' PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ vol.Required(CONF_API_KEY): cv.string, - vol.Optional(CONF_LANG, default=DEFAULT_LANG): cv.string, + vol.Optional(CONF_LANG, default='en-US'): cv.string, vol.Optional(CONF_MODEL, default='whisper-1'): cv.string, - vol.Optional(CONF_URL, default=None): cv.string, - vol.Optional(CONF_PROMPT, default=None): cv.string, - vol.Optional(CONF_TEMPERATURE, default=0): cv.positive_int, + vol.Optional(CONF_URL, default='https://api.openai.com/v1/audio/transcriptions'): cv.string, }) async def async_get_engine(hass, config, discovery_info=None): """Set up Whisper API STT speech component.""" api_key = config[CONF_API_KEY] - language = config.get(CONF_LANG, DEFAULT_LANG) + language = config.get(CONF_LANG) model = config.get(CONF_MODEL) - url = config.get('url') - prompt = config.get('prompt') - temperature = config.get('temperature') - return OpenAISTTProvider(hass, api_key, language, model, url, prompt, temperature) + url = config.get(CONF_URL) + return OpenAISTTProvider(hass, api_key, language, model, url) class OpenAISTTProvider(Provider): """The Whisper API STT provider.""" - def __init__(self, hass, api_key, lang, model, url, prompt, temperature): + def __init__(self, hass, api_key, lang, model, url): """Initialize Whisper API STT provider.""" self.hass = hass self._api_key = api_key self._language = lang self._model = model self._url = url - self._prompt = prompt - self._temperature = temperature @property def default_language(self) -> str: @@ -128,7 +118,7 @@ class OpenAISTTProvider(Provider): file_to_send = open(temp_file_path, 'rb') form = aiohttp.FormData() form.add_field('file', file_to_send, filename='audio.wav', content_type='audio/wav') - form.add_field('language', self._language) + form.add_field('language', metadata.language) form.add_field('model', self._model) async with aiohttp.ClientSession() as session: diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d2ea61b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,85 @@ +acme==2.10.0 +aiodns==3.2.0 +aiohttp==3.9.5 +aiohttp-cors==0.7.0 +aiohttp-fast-url-dispatcher==0.3.0 +aiohttp-fast-zlib==0.1.0 +aiooui==0.1.5 +aiosignal==1.3.1 +aiozoneinfo==0.1.0 +anyio==4.4.0 +astral==2.2 +async-interrupt==1.1.1 +async-timeout==4.0.3 +atomicwrites-homeassistant==1.4.1 +attrs==23.2.0 +awesomeversion==24.2.0 +bcrypt==4.1.2 +bleak==0.22.2 +bleak-retry-connector==3.5.0 +bluetooth-adapters==0.19.2 +bluetooth-auto-recovery==1.4.2 +bluetooth-data-tools==1.19.0 +boto3==1.34.128 +botocore==1.34.128 +btsocket==0.3.0 +certifi==2024.6.2 +cffi==1.16.0 +charset-normalizer==3.3.2 +ciso8601==2.3.1 +cryptography==42.0.5 +dbus-fast==2.21.3 +envs==1.4 +fnv-hash-fast==0.5.0 +fnvhash==0.1.0 +frozenlist==1.4.1 +greenlet==3.0.3 +h11==0.14.0 +habluetooth==3.1.1 +hass-nabucasa==0.81.1 +home-assistant-bluetooth==1.12.0 +homeassistant==2024.6.3 +httpcore==1.0.5 +httpx==0.27.0 +idna==3.7 +ifaddr==0.2.0 +Jinja2==3.1.4 +jmespath==1.0.1 +josepy==1.14.0 +lru-dict==1.3.0 +MarkupSafe==2.1.5 +multidict==6.0.5 +orjson==3.9.15 +packaging==24.1 +pillow==10.3.0 +psutil==5.9.8 +psutil-home-assistant==0.0.1 +pycares==4.4.0 +pycognito==2024.5.1 +pycparser==2.22 +PyJWT==2.8.0 +pyOpenSSL==24.1.0 +pyRFC3339==1.1 +PyRIC==0.1.6.3 +python-dateutil==2.9.0.post0 +python-slugify==8.0.4 +pytz==2024.1 +PyYAML==6.0.1 +requests==2.32.3 +s3transfer==0.10.1 +setuptools==70.0.0 +six==1.16.0 +sniffio==1.3.1 +snitun==0.39.1 +SQLAlchemy==2.0.30 +text-unidecode==1.3 +typing_extensions==4.12.2 +tzdata==2024.1 +uart-devices==0.1.0 +ulid-transform==0.9.0 +urllib3==1.26.19 +usb-devices==0.4.5 +voluptuous==0.13.1 +voluptuous-serialize==2.6.0 +wheel==0.43.0 +yarl==1.9.4 -- GitLab