solve #100
Browse files- README.md +6 -0
- setup.py +5 -2
- whisperlivekit/core.py +2 -2
- whisperlivekit/whisper_streaming_custom/backends.py +5 -2
README.md
CHANGED
|
@@ -72,6 +72,12 @@ pip install tokenize_uk # If you work with Ukrainian text
|
|
| 72 |
|
| 73 |
# If you want to use diarization
|
| 74 |
pip install diart
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
```
|
| 76 |
|
| 77 |
### Get access to 🎹 pyannote models
|
|
|
|
| 72 |
|
| 73 |
# If you want to use diarization
|
| 74 |
pip install diart
|
| 75 |
+
|
| 76 |
+
# Optional backends. Default is faster-whisper
|
| 77 |
+
pip install whisperlivekit[whisper] # Original Whisper backend
|
| 78 |
+
pip install whisperlivekit[whisper-timestamped] # Whisper with improved timestamps
|
| 79 |
+
pip install whisperlivekit[mlx-whisper] # Optimized for Apple Silicon
|
| 80 |
+
pip install whisperlivekit[openai] # OpenAI API backend
|
| 81 |
```
|
| 82 |
|
| 83 |
### Get access to 🎹 pyannote models
|
setup.py
CHANGED
|
@@ -1,8 +1,7 @@
|
|
| 1 |
from setuptools import setup, find_packages
|
| 2 |
-
|
| 3 |
setup(
|
| 4 |
name="whisperlivekit",
|
| 5 |
-
version="0.1.
|
| 6 |
description="Real-time, Fully Local Whisper's Speech-to-Text and Speaker Diarization",
|
| 7 |
long_description=open("README.md", "r", encoding="utf-8").read(),
|
| 8 |
long_description_content_type="text/markdown",
|
|
@@ -22,6 +21,10 @@ setup(
|
|
| 22 |
"diarization": ["diart"],
|
| 23 |
"vac": ["torch"],
|
| 24 |
"sentence": ["mosestokenizer", "wtpsplit"],
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
},
|
| 26 |
package_data={
|
| 27 |
'whisperlivekit': ['web/*.html'],
|
|
|
|
| 1 |
from setuptools import setup, find_packages
|
|
|
|
| 2 |
setup(
|
| 3 |
name="whisperlivekit",
|
| 4 |
+
version="0.1.3",
|
| 5 |
description="Real-time, Fully Local Whisper's Speech-to-Text and Speaker Diarization",
|
| 6 |
long_description=open("README.md", "r", encoding="utf-8").read(),
|
| 7 |
long_description_content_type="text/markdown",
|
|
|
|
| 21 |
"diarization": ["diart"],
|
| 22 |
"vac": ["torch"],
|
| 23 |
"sentence": ["mosestokenizer", "wtpsplit"],
|
| 24 |
+
"whisper": ["whisper"],
|
| 25 |
+
"whisper-timestamped": ["whisper-timestamped"],
|
| 26 |
+
"mlx-whisper": ["mlx-whisper"],
|
| 27 |
+
"openai": ["openai"],
|
| 28 |
},
|
| 29 |
package_data={
|
| 30 |
'whisperlivekit': ['web/*.html'],
|
whisperlivekit/core.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
try:
|
| 2 |
from whisperlivekit.whisper_streaming_custom.whisper_online import backend_factory, warmup_asr
|
| 3 |
-
except:
|
| 4 |
-
from whisper_streaming_custom.whisper_online import backend_factory, warmup_asr
|
| 5 |
from argparse import Namespace, ArgumentParser
|
| 6 |
|
| 7 |
def parse_args():
|
|
|
|
| 1 |
try:
|
| 2 |
from whisperlivekit.whisper_streaming_custom.whisper_online import backend_factory, warmup_asr
|
| 3 |
+
except ImportError:
|
| 4 |
+
from .whisper_streaming_custom.whisper_online import backend_factory, warmup_asr
|
| 5 |
from argparse import Namespace, ArgumentParser
|
| 6 |
|
| 7 |
def parse_args():
|
whisperlivekit/whisper_streaming_custom/backends.py
CHANGED
|
@@ -3,7 +3,10 @@ import logging
|
|
| 3 |
import io
|
| 4 |
import soundfile as sf
|
| 5 |
import math
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
| 7 |
from typing import List
|
| 8 |
import numpy as np
|
| 9 |
from whisperlivekit.timed_objects import ASRToken
|
|
@@ -102,7 +105,7 @@ class FasterWhisperASR(ASRBase):
|
|
| 102 |
model_size_or_path = modelsize
|
| 103 |
else:
|
| 104 |
raise ValueError("Either modelsize or model_dir must be set")
|
| 105 |
-
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 106 |
compute_type = "float16" if device == "cuda" else "float32"
|
| 107 |
|
| 108 |
model = WhisperModel(
|
|
|
|
| 3 |
import io
|
| 4 |
import soundfile as sf
|
| 5 |
import math
|
| 6 |
+
try:
|
| 7 |
+
import torch
|
| 8 |
+
except ImportError:
|
| 9 |
+
torch = None
|
| 10 |
from typing import List
|
| 11 |
import numpy as np
|
| 12 |
from whisperlivekit.timed_objects import ASRToken
|
|
|
|
| 105 |
model_size_or_path = modelsize
|
| 106 |
else:
|
| 107 |
raise ValueError("Either modelsize or model_dir must be set")
|
| 108 |
+
device = "cuda" if torch and torch.cuda.is_available() else "cpu"
|
| 109 |
compute_type = "float16" if device == "cuda" else "float32"
|
| 110 |
|
| 111 |
model = WhisperModel(
|