StephennFernandes's picture
Anuvani-Diarization 1.0.0
63dd946
Raw History Blame Contribute Delete
1.37 kB
# Copyright (c) 2026 The Anuvani-Diarization authors
# SPDX-License-Identifier: MIT OR Apache-2.0
"""Triton Python backend: the release's `load_audio` resampling (torchaudio 2.1.1's sinc resampler, as copied unchanged
into anuvani_diar.nn.resample, 2 CPU threads) for non-16 kHz input."""
import numpy as np
import triton_python_backend_utils as pb_utils
class TritonPythonModel:
def initialize(self, args):
import torch
from anuvani_diar.nn.resample import resample
self.torch, self.resample = torch, resample
torch.set_num_threads(2)
def execute(self, requests):
t, resample = self.torch, self.resample
responses = []
for req in requests:
try:
audio = pb_utils.get_input_tensor_by_name(req, "AUDIO").as_numpy()
sr = int(pb_utils.get_input_tensor_by_name(req, "SR").as_numpy()[0])
t.set_num_threads(2)
out = resample(t.from_numpy(np.ascontiguousarray(audio)).unsqueeze(0), sr, 16000).squeeze(0).numpy().astype(np.float32)
responses.append(pb_utils.InferenceResponse(output_tensors=[pb_utils.Tensor("OUT", out)]))
except Exception as e:
responses.append(pb_utils.InferenceResponse(output_tensors=[], error=pb_utils.TritonError(f"{type(e).__name__}: {e}")))
return responses