whisper core at root of wlk

This commit is contained in:
Quentin Fuxa 2025-11-10 12:17:18 +01:00
parent 7108d2ddc5
commit 13401ffe24
30 changed files with 19 additions and 26 deletions

View file

@ -72,7 +72,6 @@ Go to `chrome-extension` for instructions.
| **Apple Silicon optimizations** | `mlx-whisper` | | **Apple Silicon optimizations** | `mlx-whisper` |
| **Translation** | `nllw` | | **Translation** | `nllw` |
| *[Not recommanded]* Speaker diarization with Diart | `diart` | | *[Not recommanded]* Speaker diarization with Diart | `diart` |
| *[Not recommanded]* Original Whisper backend | `whisper` |
| *[Not recommanded]* Improved timestamps backend | `whisper-timestamped` | | *[Not recommanded]* Improved timestamps backend | `whisper-timestamped` |
| OpenAI API backend | `openai` | | OpenAI API backend | `openai` |

View file

@ -54,15 +54,15 @@ packages = [
"whisperlivekit", "whisperlivekit",
"whisperlivekit.diarization", "whisperlivekit.diarization",
"whisperlivekit.simul_whisper", "whisperlivekit.simul_whisper",
"whisperlivekit.simul_whisper.whisper", "whisperlivekit.whisper",
"whisperlivekit.simul_whisper.whisper.assets", "whisperlivekit.whisper.assets",
"whisperlivekit.simul_whisper.whisper.normalizers", "whisperlivekit.whisper.normalizers",
"whisperlivekit.web", "whisperlivekit.web",
"whisperlivekit.whisper_streaming_custom", "whisperlivekit.local_agreement",
"whisperlivekit.vad_models" "whisperlivekit.vad_models"
] ]
[tool.setuptools.package-data] [tool.setuptools.package-data]
whisperlivekit = ["web/*.html", "web/*.css", "web/*.js", "web/src/*.svg"] whisperlivekit = ["web/*.html", "web/*.css", "web/*.js", "web/src/*.svg"]
"whisperlivekit.simul_whisper.whisper.assets" = ["*.tiktoken", "*.npz"] "whisperlivekit.whisper.assets" = ["*.tiktoken", "*.npz"]
"whisperlivekit.vad_models" = ["*.jit", "*.onnx"] "whisperlivekit.vad_models" = ["*.jit", "*.onnx"]

View file

@ -1,9 +1,6 @@
try: from whisperlivekit.local_agreement.whisper_online import backend_factory
from whisperlivekit.whisper_streaming_custom.whisper_online import backend_factory from whisperlivekit.simul_whisper import SimulStreamingASR
from whisperlivekit.whisper_streaming_custom.online_asr import OnlineASRProcessor from whisperlivekit.local_agreement.online_asr import OnlineASRProcessor
except ImportError:
from .whisper_streaming_custom.whisper_online import backend_factory
from .whisper_streaming_custom.online_asr import OnlineASRProcessor
from argparse import Namespace from argparse import Namespace
import sys import sys
@ -82,9 +79,7 @@ class TranscriptionEngine:
self.vac_model = load_silero_vad(onnx=use_onnx) self.vac_model = load_silero_vad(onnx=use_onnx)
if self.args.transcription: if self.args.transcription:
if self.args.backend == "simulstreaming": if self.args.backend == "simulstreaming":
from whisperlivekit.simul_whisper import SimulStreamingASR
simulstreaming_params = { simulstreaming_params = {
"disable_fast_encoder": False, "disable_fast_encoder": False,
"custom_alignment_heads": None, "custom_alignment_heads": None,

View file

@ -6,17 +6,18 @@ import logging
import platform import platform
from whisperlivekit.timed_objects import ASRToken, Transcript, ChangeSpeaker from whisperlivekit.timed_objects import ASRToken, Transcript, ChangeSpeaker
from whisperlivekit.warmup import load_file from whisperlivekit.warmup import load_file
from .whisper import load_model, tokenizer from whisperlivekit.whisper import load_model, tokenizer
from .whisper.audio import TOKENS_PER_SECOND from whisperlivekit.whisper.audio import TOKENS_PER_SECOND
import os import os
import gc import gc
from pathlib import Path from pathlib import Path
logger = logging.getLogger(__name__)
import torch import torch
from whisperlivekit.simul_whisper.config import AlignAttConfig from whisperlivekit.simul_whisper.config import AlignAttConfig
from whisperlivekit.simul_whisper.simul_whisper import PaddedAlignAttWhisper from whisperlivekit.simul_whisper.simul_whisper import PaddedAlignAttWhisper
from whisperlivekit.simul_whisper.whisper import tokenizer
logger = logging.getLogger(__name__)
try: try:
from .mlx_encoder import mlx_model_mapping, load_mlx_encoder from .mlx_encoder import mlx_model_mapping, load_mlx_encoder

View file

@ -1,4 +1,4 @@
from .whisper.decoding import PyTorchInference from whisperlivekit.whisper.decoding import PyTorchInference
# extention of PyTorchInference for beam search # extention of PyTorchInference for beam search
class BeamPyTorchInference(PyTorchInference): class BeamPyTorchInference(PyTorchInference):

View file

@ -1,5 +1,3 @@
# This code was originally in simul_whisper/transcriber/simul_whisper.py . It is adapted a lot for SimulStreaming.
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Literal from typing import Literal

View file

@ -6,12 +6,12 @@ import logging
import torch import torch
import torch.nn.functional as F import torch.nn.functional as F
from .whisper import load_model, DecodingOptions, tokenizer from whisperlivekit.whisper import load_model, DecodingOptions, tokenizer
from .config import AlignAttConfig from .config import AlignAttConfig
from whisperlivekit.timed_objects import ASRToken from whisperlivekit.timed_objects import ASRToken
from .whisper.audio import log_mel_spectrogram, TOKENS_PER_SECOND, pad_or_trim, N_SAMPLES, N_FRAMES from whisperlivekit.whisper.audio import log_mel_spectrogram, TOKENS_PER_SECOND, pad_or_trim, N_SAMPLES, N_FRAMES
from .whisper.timing import median_filter from whisperlivekit.whisper.timing import median_filter
from .whisper.decoding import GreedyDecoder, BeamSearchDecoder, SuppressTokens, detect_language from whisperlivekit.whisper.decoding import GreedyDecoder, BeamSearchDecoder, SuppressTokens, detect_language
from .beam import BeamPyTorchInference from .beam import BeamPyTorchInference
from .eow_detection import fire_at_boundary, load_cif from .eow_detection import fire_at_boundary, load_cif
import os import os