待ち受け中の転写や完了した転写からデータを取得します。 これには転写タイムライン,キーワード,要約,段落セグメントが含まれる。
転写状態をセッションでモニタし管理する。 これは、セッションを使って、以前に作成した非同期接続に再接続することができます。
転写されたテキストを他の言語に翻訳します。 これは,予め録音された転写,ライブ転写,またはポリグロットセッション転写を含むすべての転写に対して行うことができる。
URL に記録された音声をプレーンテキストに転写する。 主要なファイルフォーマットは,MP3,WAV,FLAC,OGGを含む。
クライアント側の要求に対して一時的な認証トークンを作成します。 API キーを公開せずにウェブブラウザで API 要求を安全に実装します。
すべての転写操作に対する共通の要求オプションと応答。転写設定を設定するにはオプションを使用してください。
ライブ転写を公開共有リンクを通して放送するためのセッションを作成します。 ユーザは、自分の好きな言語でライブ転写を読み、セッションが非アクティブの時に過去の転写を読むことができる。
JavaScriptimport { LiveTranscription } from '@vocalstack/js-sdk'; const sdk = new LiveTranscription({ apiKey: 'YOUR-API-KEY' }); const stream = await sdk.connect({ // Optional: Integrate this stream with a Polyglot session polyglot_id: 'YOUR-POLYGLOT-SESSION-ID', // Optional: language of the speech spoken // (this can be used to improve the transcription accuracy) language: 'en', // Optional: Translate the transcription to these languages translations: ['de'], // Optional: Stop the stream after this many seconds of inactivity timeout_period_s: 60, // Optional: Hard stop the stream after this many seconds max_duration_s: 300, }); // Start the stream stream.start(); // Get audio data from a microphone and send it to the stream // stream.sendBuffer(buffer); // *** This is a placeholder for the actual implementation *** // Manually stop the stream (in this example, after 60 seconds) // If max_duration_s is set, stopping the stream is optional setTimeout(() => stream.stop(), 60000); // Listen for stream transcription data stream.onData((response) => { const { status, data } = response; console.log(status); // 'waiting', 'processing', 'done', 'stopping' or 'error' if (data) { console.log(data.timeline); // an object with the transcription timeline } if (status === 'done') { console.log(data.summary); // a summary of the transcription console.log(data.keywords); // an array of keywords console.log(data.paragraphs); // the entire transcription in paragraph form } });
JavaScriptconst mic = require('mic'); // Create a new instance of the microphone utility const micInstance = mic(); // Get the audio input stream const micStream = micInstance.getAudioStream(); // Capture the audio data from the microphone micStream.on('data', (data) => { stream.sendBuffer(data); // send the buffer data to the VocalStack API }); // Start capturing audio from the microphone micInstance.start();
メディアレコーダー
例えば、次のようなAPIを使用すると、 次のような結果が得られます。 記録RTC
ブラウザ互換性を向上させる) JavaScript// Request access to the microphone const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true }); // Create a MediaRecorder instance to capture audio data const mediaRecorder = new MediaRecorder(mediaStream); // Event handler to process audio data packets mediaRecorder.ondataavailable = async (event) => { const blob = event.data; // this is the audio packet (Blob) const buffer = await blob.arrayBuffer(); // convert the Blob to a Buffer stream.sendBuffer(buffer); // send the buffer data to the VocalStack API }; // Start capturing audio, and send it to the stream every second mediaRecorder.start(1000);
.m3u8 ファイル
ファイル拡張子は有効な HLS (HTTP Live Streaming) プレイリストファイルを表します。.JavaScriptimport { LiveTranscription } from '@vocalstack/js-sdk'; const sdk = new LiveTranscription({ apiKey: 'YOUR-API-KEY' }); const stream = await sdk.connect({ // must be a valid HLS streaming protocol livestream_url: 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_low/ak/bbc_world_service.m3u8', // The rest of these options are the same as for microphone live transcriptons }); stream.start(); stream.onData((response) => { // The response object is the same as the one // returned by microphone transcriptions });
ポリグロットID
上記の例で示されたように、転写要求に対するオプションを提供する。