daihui.zhang
commited on
Commit
·
c6b44fd
1
Parent(s):
c54125b
add logic to process english
Browse files- api_model.py +1 -0
- config.py +2 -2
- pyproject.toml +3 -0
- requirements.txt +45 -4
- transcribe/pipelines/pipe_whisper.py +0 -1
- transcribe/strategy.py +49 -8
- transcribe/translatepipes.py +1 -0
- transcribe/whisper_llm_serve.py +8 -9
- uv.lock +201 -0
api_model.py
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
from pydantic import BaseModel, Field
|
2 |
from uuid import UUID
|
3 |
|
|
|
1 |
+
from typing import Any, Callable, Literal
|
2 |
from pydantic import BaseModel, Field
|
3 |
from uuid import UUID
|
4 |
|
config.py
CHANGED
@@ -2,7 +2,7 @@ import pathlib
|
|
2 |
import re
|
3 |
import logging
|
4 |
|
5 |
-
DEBUG =
|
6 |
logging.basicConfig(
|
7 |
level=logging.DEBUG if DEBUG else logging.INFO,
|
8 |
format="%(asctime)s - %(levelname)s - %(message)s",
|
@@ -36,7 +36,7 @@ WHISPER_PROMPT_ZH = "以下是简体中文普通话的句子。"
|
|
36 |
MAX_LENTH_ZH = 4
|
37 |
|
38 |
WHISPER_PROMPT_EN = ""# "The following is an English sentence."
|
39 |
-
MAX_LENGTH_EN=
|
40 |
|
41 |
# WHISPER_MODEL = 'medium-q5_0'
|
42 |
WHISPER_MODEL = 'large-v3-turbo-q5_0'
|
|
|
2 |
import re
|
3 |
import logging
|
4 |
|
5 |
+
DEBUG = True
|
6 |
logging.basicConfig(
|
7 |
level=logging.DEBUG if DEBUG else logging.INFO,
|
8 |
format="%(asctime)s - %(levelname)s - %(message)s",
|
|
|
36 |
MAX_LENTH_ZH = 4
|
37 |
|
38 |
WHISPER_PROMPT_EN = ""# "The following is an English sentence."
|
39 |
+
MAX_LENGTH_EN= 1
|
40 |
|
41 |
# WHISPER_MODEL = 'medium-q5_0'
|
42 |
WHISPER_MODEL = 'large-v3-turbo-q5_0'
|
pyproject.toml
CHANGED
@@ -8,6 +8,7 @@ dependencies = [
|
|
8 |
"av>=14.2.0",
|
9 |
"fastapi>=0.115.12",
|
10 |
"librosa>=0.11.0",
|
|
|
11 |
"numpy>=2.1.3",
|
12 |
"onnxruntime>=1.21.0",
|
13 |
"pyaudio>=0.2.14",
|
@@ -18,7 +19,9 @@ dependencies = [
|
|
18 |
"soundfile>=0.13.1",
|
19 |
"torch>=2.6.0",
|
20 |
"tqdm>=4.67.1",
|
|
|
21 |
"uvicorn>=0.34.0",
|
22 |
"websocket-client>=1.8.0",
|
23 |
"websockets>=15.0.1",
|
|
|
24 |
]
|
|
|
8 |
"av>=14.2.0",
|
9 |
"fastapi>=0.115.12",
|
10 |
"librosa>=0.11.0",
|
11 |
+
"nltk>=3.9.1",
|
12 |
"numpy>=2.1.3",
|
13 |
"onnxruntime>=1.21.0",
|
14 |
"pyaudio>=0.2.14",
|
|
|
19 |
"soundfile>=0.13.1",
|
20 |
"torch>=2.6.0",
|
21 |
"tqdm>=4.67.1",
|
22 |
+
"transformers>=4.51.3",
|
23 |
"uvicorn>=0.34.0",
|
24 |
"websocket-client>=1.8.0",
|
25 |
"websockets>=15.0.1",
|
26 |
+
"wordninja>=2.0.0",
|
27 |
]
|
requirements.txt
CHANGED
@@ -15,7 +15,9 @@ cffi==1.17.1
|
|
15 |
charset-normalizer==3.4.1
|
16 |
# via requests
|
17 |
click==8.1.8
|
18 |
-
# via
|
|
|
|
|
19 |
coloredlogs==15.0.1
|
20 |
# via onnxruntime
|
21 |
decorator==5.2.1
|
@@ -23,13 +25,22 @@ decorator==5.2.1
|
|
23 |
fastapi==0.115.12
|
24 |
# via trans (pyproject.toml)
|
25 |
filelock==3.18.0
|
26 |
-
# via
|
|
|
|
|
|
|
27 |
flatbuffers==25.2.10
|
28 |
# via onnxruntime
|
29 |
fsspec==2025.3.2
|
30 |
-
# via
|
|
|
|
|
31 |
h11==0.14.0
|
32 |
# via uvicorn
|
|
|
|
|
|
|
|
|
33 |
humanfriendly==10.0
|
34 |
# via coloredlogs
|
35 |
idna==3.10
|
@@ -41,6 +52,7 @@ jinja2==3.1.6
|
|
41 |
joblib==1.4.2
|
42 |
# via
|
43 |
# librosa
|
|
|
44 |
# scikit-learn
|
45 |
lazy-loader==0.4
|
46 |
# via librosa
|
@@ -56,6 +68,8 @@ msgpack==1.1.0
|
|
56 |
# via librosa
|
57 |
networkx==3.4.2
|
58 |
# via torch
|
|
|
|
|
59 |
numba==0.61.0
|
60 |
# via librosa
|
61 |
numpy==2.1.3
|
@@ -68,15 +82,18 @@ numpy==2.1.3
|
|
68 |
# scipy
|
69 |
# soundfile
|
70 |
# soxr
|
|
|
71 |
onnxruntime==1.21.0
|
72 |
# via
|
73 |
# trans (pyproject.toml)
|
74 |
# silero-vad
|
75 |
packaging==24.2
|
76 |
# via
|
|
|
77 |
# lazy-loader
|
78 |
# onnxruntime
|
79 |
# pooch
|
|
|
80 |
platformdirs==4.3.7
|
81 |
# via pooch
|
82 |
pooch==1.8.2
|
@@ -95,8 +112,21 @@ pydantic-core==2.33.1
|
|
95 |
# via pydantic
|
96 |
pydub==0.25.1
|
97 |
# via trans (pyproject.toml)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
requests==2.32.3
|
99 |
-
# via
|
|
|
|
|
|
|
|
|
|
|
100 |
scikit-learn==1.6.1
|
101 |
# via librosa
|
102 |
scipy==1.15.2
|
@@ -123,6 +153,8 @@ sympy==1.13.1
|
|
123 |
# torch
|
124 |
threadpoolctl==3.6.0
|
125 |
# via scikit-learn
|
|
|
|
|
126 |
torch==2.6.0
|
127 |
# via
|
128 |
# trans (pyproject.toml)
|
@@ -131,11 +163,18 @@ torch==2.6.0
|
|
131 |
torchaudio==2.6.0
|
132 |
# via silero-vad
|
133 |
tqdm==4.67.1
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
# via trans (pyproject.toml)
|
135 |
typing-extensions==4.13.1
|
136 |
# via
|
137 |
# anyio
|
138 |
# fastapi
|
|
|
139 |
# librosa
|
140 |
# pydantic
|
141 |
# pydantic-core
|
@@ -151,3 +190,5 @@ websocket-client==1.8.0
|
|
151 |
# via trans (pyproject.toml)
|
152 |
websockets==15.0.1
|
153 |
# via trans (pyproject.toml)
|
|
|
|
|
|
15 |
charset-normalizer==3.4.1
|
16 |
# via requests
|
17 |
click==8.1.8
|
18 |
+
# via
|
19 |
+
# nltk
|
20 |
+
# uvicorn
|
21 |
coloredlogs==15.0.1
|
22 |
# via onnxruntime
|
23 |
decorator==5.2.1
|
|
|
25 |
fastapi==0.115.12
|
26 |
# via trans (pyproject.toml)
|
27 |
filelock==3.18.0
|
28 |
+
# via
|
29 |
+
# huggingface-hub
|
30 |
+
# torch
|
31 |
+
# transformers
|
32 |
flatbuffers==25.2.10
|
33 |
# via onnxruntime
|
34 |
fsspec==2025.3.2
|
35 |
+
# via
|
36 |
+
# huggingface-hub
|
37 |
+
# torch
|
38 |
h11==0.14.0
|
39 |
# via uvicorn
|
40 |
+
huggingface-hub==0.30.2
|
41 |
+
# via
|
42 |
+
# tokenizers
|
43 |
+
# transformers
|
44 |
humanfriendly==10.0
|
45 |
# via coloredlogs
|
46 |
idna==3.10
|
|
|
52 |
joblib==1.4.2
|
53 |
# via
|
54 |
# librosa
|
55 |
+
# nltk
|
56 |
# scikit-learn
|
57 |
lazy-loader==0.4
|
58 |
# via librosa
|
|
|
68 |
# via librosa
|
69 |
networkx==3.4.2
|
70 |
# via torch
|
71 |
+
nltk==3.9.1
|
72 |
+
# via trans (pyproject.toml)
|
73 |
numba==0.61.0
|
74 |
# via librosa
|
75 |
numpy==2.1.3
|
|
|
82 |
# scipy
|
83 |
# soundfile
|
84 |
# soxr
|
85 |
+
# transformers
|
86 |
onnxruntime==1.21.0
|
87 |
# via
|
88 |
# trans (pyproject.toml)
|
89 |
# silero-vad
|
90 |
packaging==24.2
|
91 |
# via
|
92 |
+
# huggingface-hub
|
93 |
# lazy-loader
|
94 |
# onnxruntime
|
95 |
# pooch
|
96 |
+
# transformers
|
97 |
platformdirs==4.3.7
|
98 |
# via pooch
|
99 |
pooch==1.8.2
|
|
|
112 |
# via pydantic
|
113 |
pydub==0.25.1
|
114 |
# via trans (pyproject.toml)
|
115 |
+
pyyaml==6.0.2
|
116 |
+
# via
|
117 |
+
# huggingface-hub
|
118 |
+
# transformers
|
119 |
+
regex==2024.11.6
|
120 |
+
# via
|
121 |
+
# nltk
|
122 |
+
# transformers
|
123 |
requests==2.32.3
|
124 |
+
# via
|
125 |
+
# huggingface-hub
|
126 |
+
# pooch
|
127 |
+
# transformers
|
128 |
+
safetensors==0.5.3
|
129 |
+
# via transformers
|
130 |
scikit-learn==1.6.1
|
131 |
# via librosa
|
132 |
scipy==1.15.2
|
|
|
153 |
# torch
|
154 |
threadpoolctl==3.6.0
|
155 |
# via scikit-learn
|
156 |
+
tokenizers==0.21.1
|
157 |
+
# via transformers
|
158 |
torch==2.6.0
|
159 |
# via
|
160 |
# trans (pyproject.toml)
|
|
|
163 |
torchaudio==2.6.0
|
164 |
# via silero-vad
|
165 |
tqdm==4.67.1
|
166 |
+
# via
|
167 |
+
# trans (pyproject.toml)
|
168 |
+
# huggingface-hub
|
169 |
+
# nltk
|
170 |
+
# transformers
|
171 |
+
transformers==4.51.3
|
172 |
# via trans (pyproject.toml)
|
173 |
typing-extensions==4.13.1
|
174 |
# via
|
175 |
# anyio
|
176 |
# fastapi
|
177 |
+
# huggingface-hub
|
178 |
# librosa
|
179 |
# pydantic
|
180 |
# pydantic-core
|
|
|
190 |
# via trans (pyproject.toml)
|
191 |
websockets==15.0.1
|
192 |
# via trans (pyproject.toml)
|
193 |
+
wordninja==2.0.0
|
194 |
+
# via trans (pyproject.toml)
|
transcribe/pipelines/pipe_whisper.py
CHANGED
@@ -3,7 +3,6 @@ import unicodedata
|
|
3 |
from .base import MetaItem, BasePipe, Segment
|
4 |
from ..helpers.whisper import WhisperCPP
|
5 |
|
6 |
-
|
7 |
class WhisperPipe(BasePipe):
|
8 |
whisper = None
|
9 |
|
|
|
3 |
from .base import MetaItem, BasePipe, Segment
|
4 |
from ..helpers.whisper import WhisperCPP
|
5 |
|
|
|
6 |
class WhisperPipe(BasePipe):
|
7 |
whisper = None
|
8 |
|
transcribe/strategy.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
|
2 |
import collections
|
3 |
import logging
|
4 |
from difflib import SequenceMatcher
|
@@ -6,9 +6,10 @@ from itertools import chain
|
|
6 |
from dataclasses import dataclass, field
|
7 |
from typing import List, Tuple, Optional, Deque, Any, Iterator,Literal
|
8 |
from config import SENTENCE_END_MARKERS, ALL_MARKERS,SENTENCE_END_PATTERN,REGEX_MARKERS, PAUSEE_END_PATTERN,SAMPLE_RATE
|
9 |
-
import numpy as np
|
10 |
from enum import Enum
|
11 |
-
|
|
|
|
|
12 |
logger = logging.getLogger("TranscriptionStrategy")
|
13 |
|
14 |
|
@@ -149,11 +150,12 @@ class TranscriptBuffer:
|
|
149 |
|
150 |
"""
|
151 |
|
152 |
-
def __init__(self, separator):
|
153 |
self._segments: List[str] = collections.deque(maxlen=2) # 确认的完整段落
|
154 |
self._sentences: List[str] = [] # 当前段落中的短句
|
155 |
self._buffer: str = "" # 当前缓冲中的文本
|
156 |
self._current_seg_id: int = 0
|
|
|
157 |
self._separator = separator
|
158 |
|
159 |
def get_seg_id(self) -> int:
|
@@ -183,9 +185,47 @@ class TranscriptBuffer:
|
|
183 |
self._segments.append("".join(self._sentences))
|
184 |
self._sentences.clear()
|
185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
187 |
def update_and_commit(self, stable_string: str, remaining_string:str, is_end_sentence=False):
|
188 |
-
|
|
|
|
|
|
|
189 |
logger.debug(f"{self.__dict__}")
|
190 |
if is_end_sentence:
|
191 |
self.update_pending_text(stable_string)
|
@@ -222,12 +262,12 @@ class TranscriptBuffer:
|
|
222 |
@property
|
223 |
def current_not_commit_text(self) -> str:
|
224 |
return self.un_commit_paragraph + self.pending_text
|
225 |
-
|
226 |
|
227 |
|
228 |
class TranscriptStabilityAnalyzer:
|
229 |
-
def __init__(self, separator) -> None:
|
230 |
-
self._transcript_buffer = TranscriptBuffer(separator=separator)
|
231 |
self._transcript_history = TranscriptHistory()
|
232 |
self._separator = separator
|
233 |
logger.debug(f"Current separator: {self._separator}")
|
@@ -235,6 +275,7 @@ class TranscriptStabilityAnalyzer:
|
|
235 |
def merge_chunks(self, chunks: List[TranscriptChunk])->str:
|
236 |
return "".join(r.join() for r in chunks)
|
237 |
|
|
|
238 |
|
239 |
def analysis(self, current: TranscriptChunk, buffer_duration: float) -> Iterator[TranscriptResult]:
|
240 |
current = TranscriptChunk(items=current, separator=self._separator)
|
|
|
1 |
+
|
2 |
import collections
|
3 |
import logging
|
4 |
from difflib import SequenceMatcher
|
|
|
6 |
from dataclasses import dataclass, field
|
7 |
from typing import List, Tuple, Optional, Deque, Any, Iterator,Literal
|
8 |
from config import SENTENCE_END_MARKERS, ALL_MARKERS,SENTENCE_END_PATTERN,REGEX_MARKERS, PAUSEE_END_PATTERN,SAMPLE_RATE
|
|
|
9 |
from enum import Enum
|
10 |
+
import wordninja
|
11 |
+
|
12 |
+
import re
|
13 |
logger = logging.getLogger("TranscriptionStrategy")
|
14 |
|
15 |
|
|
|
150 |
|
151 |
"""
|
152 |
|
153 |
+
def __init__(self, source_lang:str, separator:str):
|
154 |
self._segments: List[str] = collections.deque(maxlen=2) # 确认的完整段落
|
155 |
self._sentences: List[str] = [] # 当前段落中的短句
|
156 |
self._buffer: str = "" # 当前缓冲中的文本
|
157 |
self._current_seg_id: int = 0
|
158 |
+
self.source_language = source_lang
|
159 |
self._separator = separator
|
160 |
|
161 |
def get_seg_id(self) -> int:
|
|
|
185 |
self._segments.append("".join(self._sentences))
|
186 |
self._sentences.clear()
|
187 |
|
188 |
+
def rebuild(self, text):
|
189 |
+
output = self.split_and_join(
|
190 |
+
text.replace(
|
191 |
+
self._separator, ""))
|
192 |
+
if output != text:
|
193 |
+
logger.debug(f"Source string: {text.replace(self._separator, '')}")
|
194 |
+
logger.debug(f"Output string: {output}")
|
195 |
+
return output
|
196 |
+
|
197 |
+
@staticmethod
|
198 |
+
def split_and_join(text):
|
199 |
+
tokens = []
|
200 |
+
word_buf = ''
|
201 |
+
|
202 |
+
for char in text:
|
203 |
+
if char in ALL_MARKERS:
|
204 |
+
if word_buf:
|
205 |
+
tokens.extend(wordninja.split(word_buf))
|
206 |
+
word_buf = ''
|
207 |
+
tokens.append(char)
|
208 |
+
else:
|
209 |
+
word_buf += char
|
210 |
+
if word_buf:
|
211 |
+
tokens.extend(wordninja.split(word_buf))
|
212 |
+
|
213 |
+
output = ''
|
214 |
+
for i, token in enumerate(tokens):
|
215 |
+
if i == 0:
|
216 |
+
output += token
|
217 |
+
elif token in ALL_MARKERS:
|
218 |
+
output += (token + " ")
|
219 |
+
else:
|
220 |
+
output += ' ' + token
|
221 |
+
return output
|
222 |
+
|
223 |
|
224 |
def update_and_commit(self, stable_string: str, remaining_string:str, is_end_sentence=False):
|
225 |
+
if self.source_language == "en":
|
226 |
+
stable_string = self.rebuild(stable_string)
|
227 |
+
remaining_string = self.rebuild(remaining_string)
|
228 |
+
|
229 |
logger.debug(f"{self.__dict__}")
|
230 |
if is_end_sentence:
|
231 |
self.update_pending_text(stable_string)
|
|
|
262 |
@property
|
263 |
def current_not_commit_text(self) -> str:
|
264 |
return self.un_commit_paragraph + self.pending_text
|
265 |
+
|
266 |
|
267 |
|
268 |
class TranscriptStabilityAnalyzer:
|
269 |
+
def __init__(self, source_lang, separator) -> None:
|
270 |
+
self._transcript_buffer = TranscriptBuffer(source_lang=source_lang,separator=separator)
|
271 |
self._transcript_history = TranscriptHistory()
|
272 |
self._separator = separator
|
273 |
logger.debug(f"Current separator: {self._separator}")
|
|
|
275 |
def merge_chunks(self, chunks: List[TranscriptChunk])->str:
|
276 |
return "".join(r.join() for r in chunks)
|
277 |
|
278 |
+
|
279 |
|
280 |
def analysis(self, current: TranscriptChunk, buffer_duration: float) -> Iterator[TranscriptResult]:
|
281 |
current = TranscriptChunk(items=current, separator=self._separator)
|
transcribe/translatepipes.py
CHANGED
@@ -2,6 +2,7 @@ from transcribe.pipelines import WhisperPipe, TranslatePipe, MetaItem, VadPipe,
|
|
2 |
import multiprocessing as mp
|
3 |
import config
|
4 |
|
|
|
5 |
class TranslatePipes:
|
6 |
def __init__(self) -> None:
|
7 |
|
|
|
2 |
import multiprocessing as mp
|
3 |
import config
|
4 |
|
5 |
+
|
6 |
class TranslatePipes:
|
7 |
def __init__(self) -> None:
|
8 |
|
transcribe/whisper_llm_serve.py
CHANGED
@@ -7,7 +7,7 @@ from logging import getLogger
|
|
7 |
from typing import List, Optional, Iterator, Tuple, Any
|
8 |
|
9 |
import numpy as np
|
10 |
-
|
11 |
from api_model import TransResult, Message
|
12 |
from .server import ServeClientBase
|
13 |
from .utils import log_block, save_to_wave
|
@@ -75,7 +75,7 @@ class WhisperTranscriptionService(ServeClientBase):
|
|
75 |
self.source_language = source_lang
|
76 |
self.target_language = target_lang
|
77 |
self.text_separator = self._get_text_separator(source_lang)
|
78 |
-
self._transcrible_analysis = TranscriptStabilityAnalyzer(self.text_separator)
|
79 |
|
80 |
def add_audio_frames(self, frame_np: np.ndarray) -> None:
|
81 |
"""添加音频帧到处理队列"""
|
@@ -142,9 +142,8 @@ class WhisperTranscriptionService(ServeClientBase):
|
|
142 |
result = self._translate_pipe.transcrible(audio_buffer.tobytes(), self.source_language)
|
143 |
segments = result.segments
|
144 |
logger.debug(f"📝 Transcrible: {self.text_separator.join(seg.text for seg in segments)} ")
|
145 |
-
|
146 |
-
log_block("
|
147 |
-
log_block("Whisper transcription time", f"{(time.perf_counter() - start_time):.3f}", "s")
|
148 |
|
149 |
return [
|
150 |
TranscriptToken(text=s.text, t0=s.t0, t1=s.t1)
|
@@ -156,14 +155,14 @@ class WhisperTranscriptionService(ServeClientBase):
|
|
156 |
if not text.strip():
|
157 |
return ""
|
158 |
|
159 |
-
log_block("Translation input", f"{text}")
|
160 |
start_time = time.perf_counter()
|
161 |
|
162 |
result = self._translate_pipe.translate(text, self.source_language, self.target_language)
|
163 |
translated_text = result.translate_content
|
164 |
|
165 |
-
log_block("Translation time ", f"{(time.perf_counter() - start_time):.3f}", "s")
|
166 |
-
log_block("Translation
|
167 |
|
168 |
return translated_text
|
169 |
|
@@ -248,7 +247,7 @@ class WhisperTranscriptionService(ServeClientBase):
|
|
248 |
)
|
249 |
current_time = time.perf_counter()
|
250 |
time_diff = current_time - start_time
|
251 |
-
log_block("🚦 Traffic
|
252 |
|
253 |
|
254 |
def _send_result_to_client(self, result: TransResult) -> None:
|
|
|
7 |
from typing import List, Optional, Iterator, Tuple, Any
|
8 |
|
9 |
import numpy as np
|
10 |
+
# import wordninja
|
11 |
from api_model import TransResult, Message
|
12 |
from .server import ServeClientBase
|
13 |
from .utils import log_block, save_to_wave
|
|
|
75 |
self.source_language = source_lang
|
76 |
self.target_language = target_lang
|
77 |
self.text_separator = self._get_text_separator(source_lang)
|
78 |
+
self._transcrible_analysis = TranscriptStabilityAnalyzer(self.source_language, self.text_separator)
|
79 |
|
80 |
def add_audio_frames(self, frame_np: np.ndarray) -> None:
|
81 |
"""添加音频帧到处理队列"""
|
|
|
142 |
result = self._translate_pipe.transcrible(audio_buffer.tobytes(), self.source_language)
|
143 |
segments = result.segments
|
144 |
logger.debug(f"📝 Transcrible: {self.text_separator.join(seg.text for seg in segments)} ")
|
145 |
+
log_block("📝 Transcrible output", f"{self.text_separator.join(seg.text for seg in segments)}", "")
|
146 |
+
log_block("📝 Transcrible time", f"{(time.perf_counter() - start_time):.3f}", "s")
|
|
|
147 |
|
148 |
return [
|
149 |
TranscriptToken(text=s.text, t0=s.t0, t1=s.t1)
|
|
|
155 |
if not text.strip():
|
156 |
return ""
|
157 |
|
158 |
+
log_block("🐧 Translation input ", f"{text}")
|
159 |
start_time = time.perf_counter()
|
160 |
|
161 |
result = self._translate_pipe.translate(text, self.source_language, self.target_language)
|
162 |
translated_text = result.translate_content
|
163 |
|
164 |
+
log_block("🐧 Translation time ", f"{(time.perf_counter() - start_time):.3f}", "s")
|
165 |
+
log_block("🐧 Translation out ", f"{translated_text}")
|
166 |
|
167 |
return translated_text
|
168 |
|
|
|
247 |
)
|
248 |
current_time = time.perf_counter()
|
249 |
time_diff = current_time - start_time
|
250 |
+
log_block("🚦 Traffic times diff", round(time_diff, 2), 's')
|
251 |
|
252 |
|
253 |
def _send_result_to_client(self, result: TransResult) -> None:
|
uv.lock
CHANGED
@@ -299,6 +299,24 @@ wheels = [
|
|
299 |
{ url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
|
300 |
]
|
301 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
[[package]]
|
303 |
name = "humanfriendly"
|
304 |
version = "10.0"
|
@@ -509,6 +527,21 @@ wheels = [
|
|
509 |
{ url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 },
|
510 |
]
|
511 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
512 |
[[package]]
|
513 |
name = "numba"
|
514 |
version = "0.61.0"
|
@@ -898,6 +931,94 @@ wheels = [
|
|
898 |
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 },
|
899 |
]
|
900 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
901 |
[[package]]
|
902 |
name = "requests"
|
903 |
version = "2.32.3"
|
@@ -913,6 +1034,28 @@ wheels = [
|
|
913 |
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
|
914 |
]
|
915 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
916 |
[[package]]
|
917 |
name = "scikit-learn"
|
918 |
version = "1.6.1"
|
@@ -1132,6 +1275,31 @@ wheels = [
|
|
1132 |
{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638 },
|
1133 |
]
|
1134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1135 |
[[package]]
|
1136 |
name = "torch"
|
1137 |
version = "2.6.0"
|
@@ -1216,6 +1384,7 @@ dependencies = [
|
|
1216 |
{ name = "av" },
|
1217 |
{ name = "fastapi" },
|
1218 |
{ name = "librosa" },
|
|
|
1219 |
{ name = "numpy" },
|
1220 |
{ name = "onnxruntime" },
|
1221 |
{ name = "pyaudio" },
|
@@ -1226,9 +1395,11 @@ dependencies = [
|
|
1226 |
{ name = "soundfile" },
|
1227 |
{ name = "torch" },
|
1228 |
{ name = "tqdm" },
|
|
|
1229 |
{ name = "uvicorn" },
|
1230 |
{ name = "websocket-client" },
|
1231 |
{ name = "websockets" },
|
|
|
1232 |
]
|
1233 |
|
1234 |
[package.metadata]
|
@@ -1236,6 +1407,7 @@ requires-dist = [
|
|
1236 |
{ name = "av", specifier = ">=14.2.0" },
|
1237 |
{ name = "fastapi", specifier = ">=0.115.12" },
|
1238 |
{ name = "librosa", specifier = ">=0.11.0" },
|
|
|
1239 |
{ name = "numpy", specifier = ">=2.1.3" },
|
1240 |
{ name = "onnxruntime", specifier = ">=1.21.0" },
|
1241 |
{ name = "pyaudio", specifier = ">=0.2.14" },
|
@@ -1246,9 +1418,32 @@ requires-dist = [
|
|
1246 |
{ name = "soundfile", specifier = ">=0.13.1" },
|
1247 |
{ name = "torch", specifier = ">=2.6.0" },
|
1248 |
{ name = "tqdm", specifier = ">=4.67.1" },
|
|
|
1249 |
{ name = "uvicorn", specifier = ">=0.34.0" },
|
1250 |
{ name = "websocket-client", specifier = ">=1.8.0" },
|
1251 |
{ name = "websockets", specifier = ">=15.0.1" },
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1252 |
]
|
1253 |
|
1254 |
[[package]]
|
@@ -1354,3 +1549,9 @@ wheels = [
|
|
1354 |
{ url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 },
|
1355 |
{ url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 },
|
1356 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
{ url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
|
300 |
]
|
301 |
|
302 |
+
[[package]]
|
303 |
+
name = "huggingface-hub"
|
304 |
+
version = "0.30.2"
|
305 |
+
source = { registry = "https://pypi.org/simple" }
|
306 |
+
dependencies = [
|
307 |
+
{ name = "filelock" },
|
308 |
+
{ name = "fsspec" },
|
309 |
+
{ name = "packaging" },
|
310 |
+
{ name = "pyyaml" },
|
311 |
+
{ name = "requests" },
|
312 |
+
{ name = "tqdm" },
|
313 |
+
{ name = "typing-extensions" },
|
314 |
+
]
|
315 |
+
sdist = { url = "https://files.pythonhosted.org/packages/df/22/8eb91736b1dcb83d879bd49050a09df29a57cc5cd9f38e48a4b1c45ee890/huggingface_hub-0.30.2.tar.gz", hash = "sha256:9a7897c5b6fd9dad3168a794a8998d6378210f5b9688d0dfc180b1a228dc2466", size = 400868 }
|
316 |
+
wheels = [
|
317 |
+
{ url = "https://files.pythonhosted.org/packages/93/27/1fb384a841e9661faad1c31cbfa62864f59632e876df5d795234da51c395/huggingface_hub-0.30.2-py3-none-any.whl", hash = "sha256:68ff05969927058cfa41df4f2155d4bb48f5f54f719dd0390103eefa9b191e28", size = 481433 },
|
318 |
+
]
|
319 |
+
|
320 |
[[package]]
|
321 |
name = "humanfriendly"
|
322 |
version = "10.0"
|
|
|
527 |
{ url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 },
|
528 |
]
|
529 |
|
530 |
+
[[package]]
|
531 |
+
name = "nltk"
|
532 |
+
version = "3.9.1"
|
533 |
+
source = { registry = "https://pypi.org/simple" }
|
534 |
+
dependencies = [
|
535 |
+
{ name = "click" },
|
536 |
+
{ name = "joblib" },
|
537 |
+
{ name = "regex" },
|
538 |
+
{ name = "tqdm" },
|
539 |
+
]
|
540 |
+
sdist = { url = "https://files.pythonhosted.org/packages/3c/87/db8be88ad32c2d042420b6fd9ffd4a149f9a0d7f0e86b3f543be2eeeedd2/nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868", size = 2904691 }
|
541 |
+
wheels = [
|
542 |
+
{ url = "https://files.pythonhosted.org/packages/4d/66/7d9e26593edda06e8cb531874633f7c2372279c3b0f46235539fe546df8b/nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1", size = 1505442 },
|
543 |
+
]
|
544 |
+
|
545 |
[[package]]
|
546 |
name = "numba"
|
547 |
version = "0.61.0"
|
|
|
931 |
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 },
|
932 |
]
|
933 |
|
934 |
+
[[package]]
|
935 |
+
name = "pyyaml"
|
936 |
+
version = "6.0.2"
|
937 |
+
source = { registry = "https://pypi.org/simple" }
|
938 |
+
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
|
939 |
+
wheels = [
|
940 |
+
{ url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 },
|
941 |
+
{ url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 },
|
942 |
+
{ url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 },
|
943 |
+
{ url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 },
|
944 |
+
{ url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 },
|
945 |
+
{ url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 },
|
946 |
+
{ url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 },
|
947 |
+
{ url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 },
|
948 |
+
{ url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 },
|
949 |
+
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
|
950 |
+
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
|
951 |
+
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
|
952 |
+
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
|
953 |
+
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
|
954 |
+
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
|
955 |
+
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
|
956 |
+
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
|
957 |
+
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
|
958 |
+
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
|
959 |
+
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
|
960 |
+
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
|
961 |
+
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
|
962 |
+
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
|
963 |
+
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
|
964 |
+
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
|
965 |
+
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
|
966 |
+
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
|
967 |
+
]
|
968 |
+
|
969 |
+
[[package]]
|
970 |
+
name = "regex"
|
971 |
+
version = "2024.11.6"
|
972 |
+
source = { registry = "https://pypi.org/simple" }
|
973 |
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 }
|
974 |
+
wheels = [
|
975 |
+
{ url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 },
|
976 |
+
{ url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 },
|
977 |
+
{ url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 },
|
978 |
+
{ url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 },
|
979 |
+
{ url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 },
|
980 |
+
{ url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 },
|
981 |
+
{ url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 },
|
982 |
+
{ url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 },
|
983 |
+
{ url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 },
|
984 |
+
{ url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 },
|
985 |
+
{ url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 },
|
986 |
+
{ url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 },
|
987 |
+
{ url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 },
|
988 |
+
{ url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 },
|
989 |
+
{ url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 },
|
990 |
+
{ url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 },
|
991 |
+
{ url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 },
|
992 |
+
{ url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 },
|
993 |
+
{ url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 },
|
994 |
+
{ url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 },
|
995 |
+
{ url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 },
|
996 |
+
{ url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 },
|
997 |
+
{ url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 },
|
998 |
+
{ url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 },
|
999 |
+
{ url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 },
|
1000 |
+
{ url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 },
|
1001 |
+
{ url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 },
|
1002 |
+
{ url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 },
|
1003 |
+
{ url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 },
|
1004 |
+
{ url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 },
|
1005 |
+
{ url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 },
|
1006 |
+
{ url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 },
|
1007 |
+
{ url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 },
|
1008 |
+
{ url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 },
|
1009 |
+
{ url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 },
|
1010 |
+
{ url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 },
|
1011 |
+
{ url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 },
|
1012 |
+
{ url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 },
|
1013 |
+
{ url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 },
|
1014 |
+
{ url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 },
|
1015 |
+
{ url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 },
|
1016 |
+
{ url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 },
|
1017 |
+
{ url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 },
|
1018 |
+
{ url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 },
|
1019 |
+
{ url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 },
|
1020 |
+
]
|
1021 |
+
|
1022 |
[[package]]
|
1023 |
name = "requests"
|
1024 |
version = "2.32.3"
|
|
|
1034 |
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
|
1035 |
]
|
1036 |
|
1037 |
+
[[package]]
|
1038 |
+
name = "safetensors"
|
1039 |
+
version = "0.5.3"
|
1040 |
+
source = { registry = "https://pypi.org/simple" }
|
1041 |
+
sdist = { url = "https://files.pythonhosted.org/packages/71/7e/2d5d6ee7b40c0682315367ec7475693d110f512922d582fef1bd4a63adc3/safetensors-0.5.3.tar.gz", hash = "sha256:b6b0d6ecacec39a4fdd99cc19f4576f5219ce858e6fd8dbe7609df0b8dc56965", size = 67210 }
|
1042 |
+
wheels = [
|
1043 |
+
{ url = "https://files.pythonhosted.org/packages/18/ae/88f6c49dbd0cc4da0e08610019a3c78a7d390879a919411a410a1876d03a/safetensors-0.5.3-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd20eb133db8ed15b40110b7c00c6df51655a2998132193de2f75f72d99c7073", size = 436917 },
|
1044 |
+
{ url = "https://files.pythonhosted.org/packages/b8/3b/11f1b4a2f5d2ab7da34ecc062b0bc301f2be024d110a6466726bec8c055c/safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:21d01c14ff6c415c485616b8b0bf961c46b3b343ca59110d38d744e577f9cce7", size = 418419 },
|
1045 |
+
{ url = "https://files.pythonhosted.org/packages/5d/9a/add3e6fef267658075c5a41573c26d42d80c935cdc992384dfae435feaef/safetensors-0.5.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11bce6164887cd491ca75c2326a113ba934be596e22b28b1742ce27b1d076467", size = 459493 },
|
1046 |
+
{ url = "https://files.pythonhosted.org/packages/df/5c/bf2cae92222513cc23b3ff85c4a1bb2811a2c3583ac0f8e8d502751de934/safetensors-0.5.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4a243be3590bc3301c821da7a18d87224ef35cbd3e5f5727e4e0728b8172411e", size = 472400 },
|
1047 |
+
{ url = "https://files.pythonhosted.org/packages/58/11/7456afb740bd45782d0f4c8e8e1bb9e572f1bf82899fb6ace58af47b4282/safetensors-0.5.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8bd84b12b1670a6f8e50f01e28156422a2bc07fb16fc4e98bded13039d688a0d", size = 522891 },
|
1048 |
+
{ url = "https://files.pythonhosted.org/packages/57/3d/fe73a9d2ace487e7285f6e157afee2383bd1ddb911b7cb44a55cf812eae3/safetensors-0.5.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:391ac8cab7c829452175f871fcaf414aa1e292b5448bd02620f675a7f3e7abb9", size = 537694 },
|
1049 |
+
{ url = "https://files.pythonhosted.org/packages/a6/f8/dae3421624fcc87a89d42e1898a798bc7ff72c61f38973a65d60df8f124c/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cead1fa41fc54b1e61089fa57452e8834f798cb1dc7a09ba3524f1eb08e0317a", size = 471642 },
|
1050 |
+
{ url = "https://files.pythonhosted.org/packages/ce/20/1fbe16f9b815f6c5a672f5b760951e20e17e43f67f231428f871909a37f6/safetensors-0.5.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1077f3e94182d72618357b04b5ced540ceb71c8a813d3319f1aba448e68a770d", size = 502241 },
|
1051 |
+
{ url = "https://files.pythonhosted.org/packages/5f/18/8e108846b506487aa4629fe4116b27db65c3dde922de2c8e0cc1133f3f29/safetensors-0.5.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:799021e78287bac619c7b3f3606730a22da4cda27759ddf55d37c8db7511c74b", size = 638001 },
|
1052 |
+
{ url = "https://files.pythonhosted.org/packages/82/5a/c116111d8291af6c8c8a8b40628fe833b9db97d8141c2a82359d14d9e078/safetensors-0.5.3-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:df26da01aaac504334644e1b7642fa000bfec820e7cef83aeac4e355e03195ff", size = 734013 },
|
1053 |
+
{ url = "https://files.pythonhosted.org/packages/7d/ff/41fcc4d3b7de837963622e8610d998710705bbde9a8a17221d85e5d0baad/safetensors-0.5.3-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:32c3ef2d7af8b9f52ff685ed0bc43913cdcde135089ae322ee576de93eae5135", size = 670687 },
|
1054 |
+
{ url = "https://files.pythonhosted.org/packages/40/ad/2b113098e69c985a3d8fbda4b902778eae4a35b7d5188859b4a63d30c161/safetensors-0.5.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:37f1521be045e56fc2b54c606d4455573e717b2d887c579ee1dbba5f868ece04", size = 643147 },
|
1055 |
+
{ url = "https://files.pythonhosted.org/packages/0a/0c/95aeb51d4246bd9a3242d3d8349c1112b4ee7611a4b40f0c5c93b05f001d/safetensors-0.5.3-cp38-abi3-win32.whl", hash = "sha256:cfc0ec0846dcf6763b0ed3d1846ff36008c6e7290683b61616c4b040f6a54ace", size = 296677 },
|
1056 |
+
{ url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
|
1057 |
+
]
|
1058 |
+
|
1059 |
[[package]]
|
1060 |
name = "scikit-learn"
|
1061 |
version = "1.6.1"
|
|
|
1275 |
{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638 },
|
1276 |
]
|
1277 |
|
1278 |
+
[[package]]
|
1279 |
+
name = "tokenizers"
|
1280 |
+
version = "0.21.1"
|
1281 |
+
source = { registry = "https://pypi.org/simple" }
|
1282 |
+
dependencies = [
|
1283 |
+
{ name = "huggingface-hub" },
|
1284 |
+
]
|
1285 |
+
sdist = { url = "https://files.pythonhosted.org/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab", size = 343256 }
|
1286 |
+
wheels = [
|
1287 |
+
{ url = "https://files.pythonhosted.org/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41", size = 2780767 },
|
1288 |
+
{ url = "https://files.pythonhosted.org/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3", size = 2650555 },
|
1289 |
+
{ url = "https://files.pythonhosted.org/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f", size = 2937541 },
|
1290 |
+
{ url = "https://files.pythonhosted.org/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf", size = 2819058 },
|
1291 |
+
{ url = "https://files.pythonhosted.org/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8", size = 3133278 },
|
1292 |
+
{ url = "https://files.pythonhosted.org/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0", size = 3144253 },
|
1293 |
+
{ url = "https://files.pythonhosted.org/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c", size = 3398225 },
|
1294 |
+
{ url = "https://files.pythonhosted.org/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a", size = 3038874 },
|
1295 |
+
{ url = "https://files.pythonhosted.org/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf", size = 9014448 },
|
1296 |
+
{ url = "https://files.pythonhosted.org/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6", size = 8937877 },
|
1297 |
+
{ url = "https://files.pythonhosted.org/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d", size = 9186645 },
|
1298 |
+
{ url = "https://files.pythonhosted.org/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f", size = 9384380 },
|
1299 |
+
{ url = "https://files.pythonhosted.org/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3", size = 2239506 },
|
1300 |
+
{ url = "https://files.pythonhosted.org/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382", size = 2435481 },
|
1301 |
+
]
|
1302 |
+
|
1303 |
[[package]]
|
1304 |
name = "torch"
|
1305 |
version = "2.6.0"
|
|
|
1384 |
{ name = "av" },
|
1385 |
{ name = "fastapi" },
|
1386 |
{ name = "librosa" },
|
1387 |
+
{ name = "nltk" },
|
1388 |
{ name = "numpy" },
|
1389 |
{ name = "onnxruntime" },
|
1390 |
{ name = "pyaudio" },
|
|
|
1395 |
{ name = "soundfile" },
|
1396 |
{ name = "torch" },
|
1397 |
{ name = "tqdm" },
|
1398 |
+
{ name = "transformers" },
|
1399 |
{ name = "uvicorn" },
|
1400 |
{ name = "websocket-client" },
|
1401 |
{ name = "websockets" },
|
1402 |
+
{ name = "wordninja" },
|
1403 |
]
|
1404 |
|
1405 |
[package.metadata]
|
|
|
1407 |
{ name = "av", specifier = ">=14.2.0" },
|
1408 |
{ name = "fastapi", specifier = ">=0.115.12" },
|
1409 |
{ name = "librosa", specifier = ">=0.11.0" },
|
1410 |
+
{ name = "nltk", specifier = ">=3.9.1" },
|
1411 |
{ name = "numpy", specifier = ">=2.1.3" },
|
1412 |
{ name = "onnxruntime", specifier = ">=1.21.0" },
|
1413 |
{ name = "pyaudio", specifier = ">=0.2.14" },
|
|
|
1418 |
{ name = "soundfile", specifier = ">=0.13.1" },
|
1419 |
{ name = "torch", specifier = ">=2.6.0" },
|
1420 |
{ name = "tqdm", specifier = ">=4.67.1" },
|
1421 |
+
{ name = "transformers", specifier = ">=4.51.3" },
|
1422 |
{ name = "uvicorn", specifier = ">=0.34.0" },
|
1423 |
{ name = "websocket-client", specifier = ">=1.8.0" },
|
1424 |
{ name = "websockets", specifier = ">=15.0.1" },
|
1425 |
+
{ name = "wordninja", specifier = ">=2.0.0" },
|
1426 |
+
]
|
1427 |
+
|
1428 |
+
[[package]]
|
1429 |
+
name = "transformers"
|
1430 |
+
version = "4.51.3"
|
1431 |
+
source = { registry = "https://pypi.org/simple" }
|
1432 |
+
dependencies = [
|
1433 |
+
{ name = "filelock" },
|
1434 |
+
{ name = "huggingface-hub" },
|
1435 |
+
{ name = "numpy" },
|
1436 |
+
{ name = "packaging" },
|
1437 |
+
{ name = "pyyaml" },
|
1438 |
+
{ name = "regex" },
|
1439 |
+
{ name = "requests" },
|
1440 |
+
{ name = "safetensors" },
|
1441 |
+
{ name = "tokenizers" },
|
1442 |
+
{ name = "tqdm" },
|
1443 |
+
]
|
1444 |
+
sdist = { url = "https://files.pythonhosted.org/packages/f1/11/7414d5bc07690002ce4d7553602107bf969af85144bbd02830f9fb471236/transformers-4.51.3.tar.gz", hash = "sha256:e292fcab3990c6defe6328f0f7d2004283ca81a7a07b2de9a46d67fd81ea1409", size = 8941266 }
|
1445 |
+
wheels = [
|
1446 |
+
{ url = "https://files.pythonhosted.org/packages/a9/b6/5257d04ae327b44db31f15cce39e6020cc986333c715660b1315a9724d82/transformers-4.51.3-py3-none-any.whl", hash = "sha256:fd3279633ceb2b777013234bbf0b4f5c2d23c4626b05497691f00cfda55e8a83", size = 10383940 },
|
1447 |
]
|
1448 |
|
1449 |
[[package]]
|
|
|
1549 |
{ url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 },
|
1550 |
{ url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 },
|
1551 |
]
|
1552 |
+
|
1553 |
+
[[package]]
|
1554 |
+
name = "wordninja"
|
1555 |
+
version = "2.0.0"
|
1556 |
+
source = { registry = "https://pypi.org/simple" }
|
1557 |
+
sdist = { url = "https://files.pythonhosted.org/packages/30/15/abe4af50f4be92b60c25e43c1c64d08453b51e46c32981d80b3aebec0260/wordninja-2.0.0.tar.gz", hash = "sha256:1a1cc7ec146ad19d6f71941ee82aef3d31221700f0d8bf844136cf8df79d281a", size = 541572 }
|