트랜스크립션 메시지 - Amazon Chime SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

트랜스크립션 메시지

Amazon Chime SDK 서비스는 트랜스크립션 정보를 전송하여 참석자와 트랜스크립션 정보를 공유합니다.TranscriptEvent데이터 메시지의 객체. ATranscriptEvent를 제공합니다Transcript또는TranscriptionStatus.

ATranscript타임스탬프가 지정된 사용자 지정 단어와 구두점이 포함된 결과를 포함합니다. 결과는 “부분적”일 수 있으며, 이 경우 시스템은 일반적으로 후속 단계에서 결과를 업데이트합니다.TranscriptEvent. 이렇게 하면 트랜스크립션을 빠르게 확인하고 나중에 필요에 따라 인라인 업데이트를 적용할 수 있습니다.

ATranscriptStatus다음 중 하나를 제공할 수 있습니다.TranscriptionStatusType이벤트는 다음 섹션의 예제에 나열되어 있습니다.

최신 버전의 Amazon Chime SDK에는 일반적인 처리를 위한 추가 데이터 유형과 도우미 함수가 포함되어 있습니다.TranscriptEvent.

TranscriptEvent

이 예제는 일반적인 트랜스크립션 이벤트를 보여줍니다.

type TranscriptEvent = Transcript | TranscriptionStatus; export class TranscriptEventConverter { static from(dataMessage: DataMessage): TranscriptEvent[] { // convert DataMessage to TranscriptEvents return ... } } export default class TranscriptionStatus { type: TranscriptionStatusType; eventTimeMs: number; transcriptionRegion: string; transcriptionConfiguration: string; message?: string; } enum TranscriptionStatusType { STARTED = 'started', INTERRUPTED = 'interrupted', RESUMED = 'resumed', STOPPED = 'stopped', FAILED = 'failed', } export default class Transcript { results: TranscriptResult[]; // at least one } export class TranscriptResult { resultId: string; isPartial: boolean; startTimeMs: number; endTimeMs: number; alternatives: TranscriptAlternative[]; // most confident first } export default class TranscriptAlternative { items: TranscriptItem[]; // in start time order transcript: string; //concatenated transcript items entities?: TranscriptEntity[]; } export default class TranscriptItem { type: TranscriptItemType; startTimeMs: number; endTimeMs: number; attendee: Attendee; content: string; vocabularyFilterMatch?: boolean; confidence?: number; stable?: boolean; } enum TranscriptItemType { PRONUNCIATION = 'pronunciation',// content is a word PUNCTUATION = 'punctuation',// content is punctuation } export default class TranscriptEntity { category: string; confidence: number; content: string; endTimeMs: number; startTimeMs: number; type?: string; } // This is an existing SDK model export default class Attendee { attendeeId: string; externalUserId: string; }

데이터 가이드라인

진행하면서 이 가이드라인을 염두에 두세요.

  1. transcription.results결과가 두 개 이상일 수 있습니다.

  2. 만약transcription.results[i].isPartial = true그러면 전체 결과가 업데이트될 수 있습니다. 업데이트는 가능하지만 보장되지는 않습니다. 업데이트도 동일합니다.transcript.result[i].resultId. 신뢰도가 낮은 필사본을 피하려면 일부 결과를 완전히 건너뛰어도 됩니다. 지연 시간이 짧은 결과를 원하면 결과를 일부만 표시한 다음 업데이트가 도착할 때 완전히 덮어쓸 수 있습니다.

  3. transcription.results[i].alternatives항상 하나 이상의 항목이 포함됩니다. 두 개 이상의 항목이 포함된 경우 가장 신뢰할 수 있는 항목이 목록의 첫 번째 항목입니다. 대부분의 경우 첫 번째 입장권을 받으실 수 있습니다.transcription.results[i].alternatives나머지는 무시하세요.

  4. transcription.results[i].alternatives[j].items각 단어 또는 문장 부호에 대한 항목이 포함됩니다.

  5. transcription.results[i].alternatives[j].items[k].내용은 말한 내용입니다.

  6. transcription.results[i].alternatives[j].items[k].attendee콘텐츠의 사용자 어트리뷰션 (누구) 입니다.

  7. transcription.results[i].alternatives[j].items[k].startTimeMs콘텐츠의 “언제”입니다. 이것은 가능하게 합니다word-by-word단어를 발음한 순서대로 여러 사용자에 대한 사용자 속성 트랜스크립션 렌더링

  8. transcription.results[i].alternatives[j].items[k].endTimeMs필드는 일반적으로 무시할 수 있지만 누가 언제 무엇을 말했는지에 대한 완전성을 위해 제공됩니다.

  9. transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch내용이 필터의 단어와 일치하면 true이고, 그렇지 않으면 false입니다.

  10. transcription.results[i].alternatives[j].items[k].confidence0과 1 사이의 값입니다. 항목 내용이 음성 단어와 정확히 일치한다는 엔진의 신뢰도를 나타냅니다. 0은 가장 낮은 신뢰도이고 1은 가장 높은 신뢰도입니다.

  11. transcription.results[i].alternatives[j].items[k].stable향후 부분 결과 업데이트 시 현재 단어를 변경할지 여부를 나타냅니다. 이 값은 다음을 설정하여 부분 결과 안정화 기능을 활성화한 경우에만 해당됩니다.EnablePartialResultsStabilizationtrue귀하의 요청에.

  12. transcription.results[i].alternatives[j].entities콘텐츠 식별 또는 교정 기능이 감지하는 각 엔티티에 대한 항목이 포함됩니다. 목록은 콘텐츠 식별 또는 교정을 활성화한 경우에만 채워집니다. 엔티티는 개인 식별 정보 또는 개인 건강 정보와 같은 데이터일 수 있습니다. 엔티티를 사용하여 트랜스크립션 중에 관심 있는 단어를 강조 표시하거나 조치를 취할 수 있습니다.

  13. transcription.results[i].alternatives[j].entities[k].category개체의 카테고리입니다. 이는 요청에 제공된 콘텐츠 식별 또는 수정 유형 (예: “PII” 또는 “PHI”) 과 동일합니다.

  14. transcription.results[i].alternatives[j].entities[k].confidence특정 콘텐츠가 진정한 개체가 될 수 있는 엔진이 얼마나 강력한지 측정합니다. 이 값은 엔진이 단어 자체의 정확성을 얼마나 신뢰하는지 측정하는 항목 수준 신뢰도와는 다르다는 점에 유의하세요.

  15. transcription.results[i].alternatives[j].entities[k].content엔티티를 구성하는 실제 텍스트입니다. 주소와 같은 여러 항목일 수 있습니다.

  16. transcription.results[i].alternatives[j].entities[k].startTimeMs개체가 말을 하기 시작한 시간을 캡처합니다.

  17. transcription.results[i].alternatives[j].entities[k].endTimeMs개체가 말을 마친 시간을 캡처합니다.

  18. transcription.results[i].alternatives[j].entities[k].typeTranscribe 엔진에서만 지원되며 개체의 하위 유형을 제공합니다. 이러한 값은 '주소', '신용_직불_번호' 등과 같은 값입니다.

에 대한 이벤트 핸들러 등록TranscriptEvents

다음 예제에서는 Amazon Chime SDK 클라이언트 라이브러리를 다음 용도로 사용합니다.JavaScript. 하지만 이 패턴은 모든 아마존 차임 SDK에서 동일합니다.

TranscriptionController에서RealtimeControllerRealtimeControllerFacade처리하는 핸들러를 추가하기 위한 특정 함수를 포함합니다.TranscriptionEvents:

/** * Returns the [[TranscriptionController]] for this real-time controller. */ readonly transcriptionController?: TranscriptionController;

TranscriptionController구독과 구독 취소를 관리하는 두 가지 기능이 있습니다.TranscriptionEvent콜백:

import TranscriptEvent from './TranscriptEvent'; export default interface TranscriptionController { /** * Subscribe a callback to handle received transcript event */ subscribeToTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void; /** * Unsubscribe a callback from receiving transcript event */ unsubscribeFromTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void; }
옵션 사용TranscriptionController

다음과 같은 기본 구현을 제공합니다.TranscriptionController이름이 지정된 인터페이스DefaultTranscriptionController. 의 기본 구현DefaultRealtimeControllerDefaultAudioVideoFacadea를 반환합니다.DefaultTranscriptionController객체:

/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }

DefaultRealtimeController또한 선택 사항이 필요합니다.TranscriptionController생성자에 있는 객체. 이를 통해 재정의할 수 있습니다.DefaultTranscriptionController행동. 개발자 애플리케이션은 다음을 통해 하나 이상의 콜백을 구독 및 구독 취소합니다.TranscriptionController의 대상AudioVideoFacade객체:

// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););