게시일: 2024년 9월 24일
텍스트를 한 언어에서 다른 언어로 번역하기 전에 먼저 지정된 텍스트에 사용된 언어를 확인해야 합니다. 이전에는 텍스트를 클라우드 서비스에 업로드해야 했습니다. 온디바이스 추론을 사용하면 개인 정보 보호 스토리를 개선할 수 있습니다. 이를 실행하는 특정 라이브러리를 제공할 수도 있지만 다운로드하려면 추가 리소스가 필요합니다.
언어 감지기 및 번역기 API 제안의 목표는 브라우저에 내장된 API를 사용하여 모델을 이 작업에 맞게 미세 조정하여 이러한 문제를 해결하는 것입니다.
사용 사례 예시
Language Detector API는 주로 다음과 같은 시나리오에서 유용합니다.
- 입력 텍스트의 언어를 결정하여 번역할 수 있도록 합니다.
- 유해성 감지와 같은 언어별 작업을 위해 올바른 모델을 로드할 수 있도록 입력 텍스트의 언어를 결정합니다.
- 온라인 소셜 네트워킹 사이트 등에서 올바르게 라벨이 지정될 수 있도록 입력 텍스트의 언어를 결정합니다.
- 입력 텍스트의 언어를 확인하여 앱의 인터페이스를 적절하게 조정할 수 있습니다. 예를 들어 벨기에 사이트에서 프랑스어를 사용하는 사용자와 관련된 인터페이스만 표시할 수 있습니다.
Language Detector API 사용
Language Detector API는 Translator API의 더 큰 제품군에 속합니다. 먼저 기능 감지를 실행하여 브라우저가 Language Detector API를 지원하는지 확인합니다.
if ('translation' in self && 'canDetect' in self.translation) {
// The Language Detector API is available.
}
모델 다운로드
언어 감지는 언어 감지의 특정 작업에 맞게 미세 조정된 모델에 종속됩니다. API가 브라우저에 내장되어 있는 동안에는 사이트에서 API를 처음 사용하려고 할 때 주문형으로 모델이 다운로드됩니다. Chrome에서 이 모델은 다른 모델에 비해 매우 작습니다. 실제로 이 모델이 Chrome 브라우저 기능에도 사용된다는 점을 고려할 때 이미 존재할 수도 있습니다.
모델을 사용할 준비가 되었는지 확인하려면 비동기 translation.canDetect()
함수를 호출합니다. 다음과 같은 세 가지 응답이 있습니다.
'no'
: 현재 브라우저에서 Language Detector API를 지원하지만 현재는 사용할 수 없습니다. 예를 들어 모델을 다운로드하는 데 사용할 수 있는 디스크 여유 공간이 충분하지 않기 때문입니다.'readily'
: 현재 브라우저는 Language Detector API를 지원하며 즉시 사용할 수 있습니다.'after-download'
: 현재 브라우저는 Language Detector API를 지원하지만 먼저 모델을 다운로드해야 합니다.
다운로드를 트리거하고 언어 감지기를 인스턴스화하려면 비동기 translation.createDetector()
함수를 호출합니다. canDetect()
에 대한 응답이 'after-download'
인 경우 다운로드에 시간이 걸리는 경우 사용자에게 알릴 수 있도록 다운로드 진행률을 리슨하는 것이 좋습니다.
다음 예에서는 언어 감지기를 초기화하는 방법을 보여줍니다.
const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
// The language detector isn't usable.
return;
}
if (canDetect === 'readily') {
// The language detector can immediately be used.
detector = await translation.createDetector();
} else {
// The language detector can be used after model download.
detector = await translation.createDetector();
detector.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
await detector.ready;
}
언어 감지기 실행
Language Detector API는 순위 모델을 사용하여 지정된 텍스트에서 가장 많이 사용될 가능성이 높은 언어를 결정합니다. 순위는 항목 목록을 정렬하는 것을 목표로 하는 머신러닝의 한 유형입니다. 이 경우 Language Detector API는 언어를 확률이 높은 순서대로 정렬합니다.
detect()
함수는 첫 번째 결과, 가장 가능성 있는 답변을 반환하거나 신뢰도 수준을 사용하여 순위가 지정된 후보를 반복할 수 있습니다.
이는 {detectedLanguage, confidence}
객체 목록으로 반환됩니다. confidence
수준은 0.0
(가장 낮은 신뢰도)과 1.0
(가장 높은 신뢰도) 사이의 값으로 표현됩니다.
const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
// Show the full list of potential languages with their likelihood, ranked
// from most likely to least likely. In practice, one would pick the top
// language(s) that cross a high enough threshold.
console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...
데모
데모에서 Language Detector API를 미리 살펴보세요. 텍스트 영역에 다른 언어로 작성된 텍스트를 입력합니다.
오리진 트라이얼 가입
Language Detector API 체험판 에 등록하여 사용자를 대상으로 이 API 테스트를 시작합니다. 이 오리진 트라이얼은 Chrome 130~135에서 실행됩니다.
출처 무료 체험 작동 방식에 대해 자세히 알아보세요.
표준화 노력
해당하는 제안에서 충분한 지원을 받은 후 Language Detector API를 W3C 웹 인큐베이터 커뮤니티 그룹으로 이전했습니다. 이 API는 더 큰 Translation API 제안서의 일부입니다. Chrome팀은 W3C 기술 아키텍처 그룹에 의견을 요청하고 Mozilla 및 WebKit에 특정 브라우저 공급업체의 표준 입장을 문의했습니다.
의견 공유하기
Chrome 구현에 관한 의견이 있으면 Chromium 버그를 신고하세요. Translation API GitHub 저장소에서 기존 문제에 댓글을 달거나 새 문제를 열어 Language Detector API의 API 형식에 관한 의견을 공유하세요.