Как использовать Speech_recognition и pyannote.audio одновременноPython

Программы на Python
Ответить
Anonymous
 Как использовать Speech_recognition и pyannote.audio одновременно

Сообщение Anonymous »

Как я могу использовать данные из функции list_recognition Listen() в качестве встраивания для сравнения с ранее записанными WAV-файлами разговоров разных говорящих, чтобы я мог напечатать (speaker): (распознанный текст)? Если возможно, поскольку моя система памяти представляет собой SD-карту, я бы хотел сохранить аудиоданные в реальном времени, а не хранить их. Я пытался сделать это, учитывая ошибки, но значения косинусного расстояния всегда оказываются около 1, без видимой связи с тем, кто на самом деле говорит:

Код: Выделить всё

import speech_recognition as sr
from pyannote.audio import Model, Inference
from scipy.spatial.distance import cdist
import torch
import numpy

recognizer = sr.Recognizer()
recognizer.dynamic_energy_threshold = False
recognizer.energy_threshold=1100
recognizer.pause_threshold=3

embedding_model = Model.from_pretrained("pyannote/embedding", use_auth_token="(my token)", device="cpu")
inference = Inference(embedding_model, device=torch.device("cuda" if torch.cuda.is_available() else "cpu"), window="whole")
Speaker_embedding = inference("voice_sample.wav")

with sr.Microphone() as source:
audio = recognizer.listen(source, timeout=10)
recognized_text = recognizer.recognize_google(audio, language="en")

audio_data = np.frombuffer(audio.get_raw_data(), dtype=np.int16).astype(np.float32) / 32768.0
live_audio = {"waveform": torch.tensor(audio_data).unsqueeze(0), "sample_rate": 16000}
live_embedding = inference(live_audio)
distance = cdist(live_embedding, Speaker_embedding, metric="cosine")[0, 0]
print(distance)
print(recognized_text)
Однако распознавание речи работает.
А еще, как ни странно, пример из https://huggingface.co/pyannote/embedding:

Код: Выделить всё

from pyannote.audio import Model
model = Model.from_pretrained("pyannote/embedding", use_auth_token="ACCESS_TOKEN_GOES_HERE")

from pyannote.audio import Inference
inference = Inference(model, window="whole")
embedding1 = inference("speaker1.wav")
embedding2 = inference("speaker2.wav")
# `embeddingX` is (1 x D) numpy array extracted from the file as a whole.

from scipy.spatial.distance import cdist
distance = cdist(embedding1, embedding2, metric="cosine")[0,0]
поднимает вопрос:

Код: Выделить всё

ValueError: XA must be a 2-dimensional array
(изменение их формы с помощью np.reshape(1, -1) дает странные значения расстояния)

Подробнее здесь: https://stackoverflow.com/questions/793 ... ltaneously
Ответить

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

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

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

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

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