Jak działa Scribe v2 Realtime

Jak Scribe v2 Realtime umożliwia szybkie transkrypcje na żywo do tłumaczeń i aplikacji głosowych

Scribe v2 Realtime

Scribe v2 Realtime to bardzo szybki model Speech to Text, który sprawdza się przy transkrypcjach na żywo. Połączenie szybkości i jakości pozwala na zastosowania, które wcześniej były niemożliwe.

Na przykład, dzięki Scribe v2 Realtime i Chrome Translator API zbudowaliśmy tłumacza językowego działającego w czasie rzeczywistym.

Live transcription on the left and committed transcripts on the right in a list

Jeśli chcesz zobaczyć instrukcję krok po kroku do tego demo, znajdziesz ją tutaj. Ten przewodnik skupia się na ogólnym działaniu Scribe v2 Realtime i tym, jak to działa.

Model

W ElevenLabs masz dwa modele do transkrypcji audio: Scribe v2 i Scribe v2 Realtime.

Optimized For
Scribe v2
Accuracy
Scribe v2 Realtime
Ultra low latency
Use Case
Scribe v2
Batch transcription, subtitling, and captioning at scale.
Scribe v2 Realtime
Voice agents, meeting notetakers, and other live applications.

Scribe v2 sprawdza się, gdy transkrypcja nie musi być na żywo, a Scribe v2 Realtime jest do transkrypcji w czasie rzeczywistym.

Do tłumaczenia języka na żywo najlepszy będzie Scribe v2 Realtime.

API

Aby korzystać z tego modelu, użyj Speech to Text API. Na start musisz wykonać dwa kroki:

  1. Zainicjuj instancję Scribe
  2. Połącz się z API

W zależności od tego, gdzie wywołujesz API, inicjalizacja wygląda inaczej. Jeśli robisz to po stronie serwera, możesz użyć klucza API i połączyć się z Scribe v2 Realtime.

Ale udostępnianie klucza API po stronie klienta to duże ryzyko. Dlatego jeśli streamujesz po stronie klienta, musisz użyć tokena jednorazowego.

Ten token trzeba wygenerować po stronie serwera, żeby chronić klucz API.

Ponieważ budujemy aplikację w React, użyjemy tokena. Token przekazujesz podczas łączenia, więc stworzenie instancji Scribe jest bardzo proste.

1import { useScribe } from "@elevenlabs/react";
2
3function MyComponent() {
4 const scribe = useScribe({
5 modelId: "scribe_v2_realtime",
6 });
7
8 //...
9}

Łączenie z Scribe v2 Realtime

Po poprawnej inicjalizacji możesz połączyć się z Scribe v2 Realtime. W projekcie tłumacza w React użyliśmy streamingu po stronie klienta, więc potrzebny był token z backendu. Token trzeba generować i przekazywać za każdym razem, gdy łączysz się z API.

1const handleStart = async () => {
2 const token = await fetchTokenFromServer();
3
4 await scribe.connect({
5 token,
6 microphone: {
7 echoCancellation: true,
8 noiseSuppression: true,
9 },
10 });
11};


Strategia commitowania

W Scribe v2 Realtime są dwa typy transkrypcji: częściowe i zatwierdzone.

Częściowe transkrypcje to „transkrypcje na żywo”. Powstają przez websocket i pojawiają się na bieżąco, gdy mówisz. Jeśli powiesz „Kot jest...”, te słowa zobaczysz od razu.

Drugi typ to transkrypcje zatwierdzone. Transkrypcje dzielą się na segmenty. To, kiedy i jak je zatwierdzasz, decyduje o podziale tekstu. Do tego potrzebujesz strategii commitowania.

Są dwie opcje strategii commitowania. Pierwsza to ręczna – masz pełną kontrolę, kiedy zatwierdzasz transkrypcje. Najlepiej robić to podczas pauz lub w logicznych momentach, np. po zakończeniu wypowiedzi.

Druga opcja to automatyczne zatwierdzanie przez Scribe v2 Realtime z użyciem Voice Activity Detection (VAD). Ten sposób sam wykrywa mowę i ciszę. Gdy wykryje ciszę, transkrypcja zostaje zatwierdzona automatycznie.

Po co w ogóle strategia commitowania?

Podczas mówienia Scribe v2 Realtime transkrybuje każde słowo. Jeśli powiesz „I scream...”, może to rozpoznać jako „Ice cream...”. Ale mając cały segment „I scream every time I see a spider in the bathroom”, wynik jest dokładniejszy.

Częściowe transkrypcje możesz pokazywać na żywo, a zatwierdzone będą dokładniejszym zapisem rozmowy.

Wyświetlanie transkrypcji

Po połączeniu z Scribe v2 Realtime transkrypcja działa. Dostęp do transkrypcji masz przez właściwości partialTranscript i committedTranscripts.

1<div>
2 <button onClick={handleStart} disabled={scribe.isConnected}>
3 Start Recording
4 </button>
5 <button onClick={scribe.disconnect} disabled={!scribe.isConnected}>
6 Stop
7 </button>
8
9 {scribe.partialTranscript && <p>Live: {scribe.partialTranscript}</p>}
10
11 <div>
12 {scribe.committedTranscripts.map((t) => (
13 <p key={t.id}>{t.text}</p>
14 ))}
15 </div>
16</div>

partialTranscript to transkrypcja na żywo aktualnego segmentu. committedTranscript to historia rozmowy, czyli lista zatwierdzonych segmentów podczas połączenia z Scribe v2 Realtime.

Tłumacz z AI

To wszystko, czego potrzebujesz, by mieć transkrypcje rozmów na żywo. Teraz możesz dodać ładny interfejs albo kolejne funkcje, np. tłumaczenie języka na żywo.

Aby stworzyć tłumacza językowego z demo, przekaż transkrypcje doChrome AI Translator API i wyświetlaj wynik na żywo.

Zacznij budować

Dzięki za przeczytanie! Zarejestruj się w ElevenLabs i zacznij budować swoje aplikacje!

Przeglądaj artykuły zespołu ElevenLabs

ElevenLabs

Twórz z najwyższą jakością dźwięku AI