Steven Linn пре 11 месеци
родитељ
комит
927548eb90
8 измењених фајлова са 89 додато и 10 уклоњено
  1. 5 0
      .dockerignore
  2. 3 0
      .gitignore
  3. 39 0
      Dockerfile
  4. 30 0
      docker-compose.yml
  5. 1 1
      example_browserclient/server.py
  6. 1 1
      example_webserver/server.py
  7. 4 3
      requirements-gpu.txt
  8. 6 5
      requirements.txt

+ 5 - 0
.dockerignore

@@ -0,0 +1,5 @@
+__pycache__
+.cache
+.dockerignore
+docker-compose.yml
+Dockerfile

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+__pycache__
+.cache
+realtimesst.log

+ 39 - 0
Dockerfile

@@ -0,0 +1,39 @@
+FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04 as gpu
+
+WORKDIR /app
+
+RUN apt-get update -y && \
+  apt-get install -y python3 python3-pip libcudnn8 libcudnn8-dev libcublas-12-4 portaudio19-dev
+
+RUN pip3 install torch==2.3.0 torchaudio==2.3.0
+
+COPY requirements-gpu.txt /app/requirements-gpu.txt
+RUN pip3 install -r /app/requirements-gpu.txt
+
+RUN mkdir example_browserclient
+COPY example_browserclient/server.py /app/example_browserclient/server.py
+COPY RealtimeSTT /app/RealtimeSTT
+
+EXPOSE 9001
+ENV PYTHONPATH "${PYTHONPATH}:/app"
+RUN export PYTHONPATH="${PYTHONPATH}:/app"
+CMD ["python3", "example_browserclient/server.py"]
+
+# --------------------------------------------
+
+FROM ubuntu22.04 as cpu
+
+WORKDIR /app
+
+RUN apt-get update -y && \
+  apt-get install -y python3 python3-pip portaudio19-dev
+
+RUN pip3 install torch==2.2.2+cu118 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu118
+
+COPY requirements.txt /app/requirements.txt
+RUN pip3 install -r /app/requirements.txt
+
+EXPOSE 9001
+ENV PYTHONPATH "${PYTHONPATH}:/app"
+RUN export PYTHONPATH="${PYTHONPATH}:/app"
+CMD ["python3", "example_browserclient/server.py"]

+ 30 - 0
docker-compose.yml

@@ -0,0 +1,30 @@
+services:
+  rtstt:
+    build:
+      context: .
+      target: gpu # or cpu
+    image: rtstt
+    container_name: rtstt
+    volumes:
+      # - ./RealtimeSTT:/app/RealtimeSTT
+      # - ./example_browserclient:/app/example_browserclient
+      - cache:/root/.cache
+    ports:
+      - "9001:9001"
+
+    # if 'gpu' target
+    deploy:
+      resources:
+        reservations:
+          devices:
+          - capabilities: ["gpu"]
+  nginx:
+    image: nginx:latest
+    container_name: nginx_web
+    ports:
+      - "8081:80"
+    volumes:
+      - ./example_browserclient:/usr/share/nginx/html
+
+volumes:
+  cache:

+ 1 - 1
example_browserclient/server.py

@@ -98,7 +98,7 @@ if __name__ == '__main__':
             resampled_chunk = decode_and_resample(chunk, sample_rate, 16000)
             recorder.feed_audio(resampled_chunk)
 
-    start_server = websockets.serve(echo, "localhost", 9001)
+    start_server = websockets.serve(echo, "0.0.0.0", 9001)
 
     recorder_thread = threading.Thread(target=recorder_thread)
     recorder_thread.start()

+ 1 - 1
example_webserver/server.py

@@ -1,7 +1,7 @@
 WAIT_FOR_START_COMMAND = False
 
 if __name__ == '__main__':
-    server = "localhost"
+    server = "0.0.0.0"
     port = 5025
 
     print (f"STT speech to text server")

+ 4 - 3
requirements-gpu.txt

@@ -1,6 +1,7 @@
 PyAudio==0.2.14
-faster-whisper==1.0.1
-pvporcupine==1.9.5
+faster-whisper==1.0.2
+pvporcupine==3.0.2
 webrtcvad==2.0.10
 halo==0.0.31
-scipy==1.12.0
+scipy==1.13.0
+websockets==v12.0

+ 6 - 5
requirements.txt

@@ -1,8 +1,9 @@
 PyAudio==0.2.14
-faster-whisper==1.0.1
-pvporcupine==1.9.5
+faster-whisper==1.0.2
+pvporcupine==3.0.2
 webrtcvad==2.0.10
 halo==0.0.31
-torch==2.2.2
-torchaudio==2.2.2
-scipy==1.12.0
+torch==2.3.0
+torchaudio==2.3.0
+scipy==1.12.0
+websockets==v12.0