Шепот Игнорировать звуки огняPython

Программы на Python
Ответить
Anonymous
 Шепот Игнорировать звуки огня

Сообщение Anonymous »

Я использую Whisper для расшифровки автоматических отправлений из SDR. Проблема в том, что из-за тонов и глубины в начале сообщений Whisper пропускает начало стенограммы. Он содержит ключевые сведения, такие как тип инцидента. Я не могу просто каждый раз начинать аудиозапись с двух секунд, потому что длина тона может варьироваться в зависимости от количества отделов, отправляемых на вызов.
Я пробовал различные размеры луча, но с ограниченным успехом. Возможно, есть другая утилита, которую я могу использовать для обнаружения тонов. У меня закончились идеи!
Вы можете послушать образец аудио здесь.
# Acquire global whisper lock (prevent concurrent model use)
global whisper_lock
if "whisper_lock" not in globals():
whisper_lock = threading.Lock()

# Ensure your model pipeline exists (uncomment if you need lazy-load)
# if getattr(constants, "batchedWisper", None) is None:
# from html_api_server import get_whisper_model
# constants.batchedWisper = get_whisper_model()

with whisper_lock:
if getattr(constants, "batchedWisper", None) is None:
try:
from constants import whisperManager
whisperManager.loadWhisperModel()
except Exception as e:
return f"[Transcription failed for {call_id}: Whisper model unavailable: {e}]", False, work_path

pipeline = getattr(constants, "batchedWisper", None)
if pipeline is None:
return f"[Transcription failed for {call_id}: Whisper pipeline not initialized]", False, work_path

try:
# ENABLE TEMPERATURE SAMPLING FALLBACKS FOR WHISPER TRANSCRIPTION QUALITY
# Faster-Whisper batched pipeline assumed pre-loaded as constants.batchedWisper
beam_size = getattr(constants, "WHISPER_BEAM_SIZE", 1) or 1
temperature_values = getattr(constants, "WHISPER_TEMPERATURES", (0.0, 0.2, 0.4, 0.6))
if isinstance(temperature_values, tuple) and len(temperature_values) == 1:
temperature_setting = temperature_values[0]
else:
temperature_setting = temperature_values

vad_filter_enabled = getattr(constants, "WHISPER_VAD_FILTER", True)
segments, info = pipeline.transcribe(
work_path,
batch_size=16,
vad_filter=vad_filter_enabled,
condition_on_previous_text=False,
beam_size=beam_size,
language="en",
temperature=temperature_setting
)
transcript = " ".join(seg.text for seg in segments) if segments else ""
except Exception as e:
return f"[Transcription failed for {call_id}: {e}]", False, work_path

return transcript or "[Empty transcript]", True, work_path


Подробнее здесь: https://stackoverflow.com/questions/798 ... fire-tones
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»