"아직 46분 남았습니다. 동선생님 휴가가 끝나갑니다."
동유희 님의 최근 영상에 좋아요가 100개가 넘는 메시지입니다.
오리엔탈 셀렉션 생방송실에서 사라진 날, 팬들은 그의 개인 계정에 "이 남자가 휴가만 나면 수십만명의 사랑이 식을 것"이라는 농담이 쏟아졌다.
그러나 최고의 앵커들에게는 아무리 자신의 일에 전념해도 방송을 떠나야 할 시간은 항상 있기 마련입니다.
결국 몇 시간 동안 계속 이야기하고, 재치 있는 말을 해야하는 것은 정신적인 에너지와 체력을 모두 소모하게 됩니다.
이런 상황에서는 '24시간 생방송'도 불가능할 뿐만 아니라, 교대근무 없이 장시간의 채팅도 모두가 감당할 수 있는 일이 아닙니다.
그런데 기계 지원이 있다면 어떨까요...
특히 이 기간 동안 가상 인간 및 기타 기술이 폭발적으로 증가함에 따라 사람들의 마음을 열지 않기가 어렵습니다. -
AI의 힘으로, 앵커 헤드를 '직접' 생방송실에 24시간 머물게 할 수 있나요?
게다가, 당선생님의 이중언어 능력 없이도 원활하게 언어를 전환하고 직접 해외로 나갈 수 있나요?
현재 구현된 다양한 AI 기술로 판단하면 이러한 "브레인 홀"은 달성하는 것이 불가능하지 않습니다.
이미지 기술 측면에서 AI가 직접 아바타를 생성하거나 앵커의 얼굴을 '변경'하는 것은 어렵지 않습니다.
예를 들어 실제처럼 생긴 외국 '톰 크루즈'가 틱톡에서 한동안 인기를 끌었고, 류예시, 리싱란 등 국내 아바타도 국내 소셜미디어 플랫폼 'AI 합성'에서 큰 인기를 끌었다. 영상의 그림자에 거의 보이지 않는데, 댓글에도 놀라운 목소리가 많이 있습니다.
이뿐만 아니라 AI가 생성한 이미지와 심지어 비디오의 효과도 점점 정교해지고 있습니다. 해외 OpenAI의 DALL·E2, Google의 최신 Imagen 및 Parti, 국내 Wisdom Source CogVideo 및 Microsoft Asia Research Institute NUWA-Infinity가 모두 있습니다. 매달 새로운 결과가 나타납니다.
위에 언급된 이미지 기술 중 다수는 API 인터페이스를 공개했거나 시험판을 신청했습니다. 또한 기본적으로 "모든 사람이 플레이할 수 있는" 유사한 오픈 소스 모델이 많이 있습니다.
이러한 기술을 바탕으로 국내외 다양한 플랫폼에 수많은 '24시간 라이브 방송' AI 블로거들이 등장했습니다.
하지만 클릭해 보면 이러한 AI 블로거의 인기가 실제 앵커나 실제 사람들이 연기하는 가상 앵커보다 훨씬 덜 인기가 있다는 것을 알 수 있습니다.
Δ 24시간 AI 가상 앵커, 반나절 만에 167명만 '시청'
라이브 방송 효과도 우리가 기대하는 '24시간 라이브 방송'과는 좀 거리가 있다.
언제 상호 작용하는 대부분의 AI 앵커가 할 수 있는 일은 매우 제한적이며 일부는 단순히 노래 몇 곡(제한된 재생 목록)만 부르거나 설정된 지침에 따라 응답할 수 있습니다.
말할 때 AI가 합성한 가상 앵커 음성은 다음과 같습니다. 뿐만 아니라 톤은 라이브 앵커만큼 생생하지 않으며 감정적 "놀라움"을 적극적으로 만들 수 없습니다.
이것이 반영하는 것은 대부분의 가상 AI 앵커의 페인 포인트입니다. -
최근 몇 년 동안 이미지 생성 기술의 지속적인 혁신이 있었지만 음성 언어 AI의 기술적 한계는 여전히 높습니다.
동유희의 생방송실을 예로 들어보겠습니다. '아이동유희'의 이미지를 합성하는 것은 동선생님의 뜻이라면 어렵지 않습니다.
그러나 'AI 버전'을 만들어야 합니다. 동 선생님의 말투와 음색이 실제 사람과 더 비슷하고 그를 알아보는 것은 여전히 생방송실에서 다른 선생님들의 목소리와 생방송실 밖의 조교들의 "지시"를 이해하는 것조차 어렵습니다.
이에 상응하는 것은 음성 합성, 음성 인식, 음성 인식 등 다양한 음성 언어 AI의 포괄적인 기능입니다.
더 나아가 이 라이브 방송실을 국제적으로 만들고 싶다면 음성 기능에 대한 더 높은 요구 사항도 제시해야 합니다.
예를 들어 온라인에서 실시간으로 번역할 수 있는 AI 자막이 최소한 필요합니다.
이를 바탕으로 무장애 생방송실을 구축하려면 동시 시청 능력을 더욱 마스터해야 합니다. 해석.
좋은 소식은 이제 점점 더 많은 주요 기술 제조업체가 이 경로를 주목하고 지난 몇 년 동안 투자를 늘려 왔다는 것입니다.
이론적 연구의 관점에서 볼 때, 음성 언어 AI 방향에 대한 많은 논문이 있었습니다.
Amazon 및 Google과 같은 주요 기업은 대화형 AI, NLP 및 언어 처리에 관한 수백 또는 수천 개의 AI 논문을 발표했으며 그 중 다수는 최고의 컨퍼런스 논문이며 Meta는 2018년에만 상을 받았습니다. 상위 NLP 두 곳의 최고의 논문 컨퍼런스, EMNLP 및 ACL...
(물론 논문을 덜 발표하는 분들도 계시고, 예를 들어 애플은 특허출원을 선호합니다.)
BAT, Huawei, JD.com 등 국내 기업들도 자체 음향시설을 구축하거나 최근 NAACL, AAAI 등 NLP 연구소에서 ACL 등 다수의 주요 학회에서 다양한 논문상을 수상했습니다.
ΔACL 2022 부분우수논문상
세계에서 가장 영향력 있는 음성 기계번역 대회 중 하나인 IWSLT(International Spoken Machine Translation Competition)를 예로 들어보겠습니다.
올해 대회에서 화웨이는 음성 대 음성 번역, 오프라인 음성 번역, 동일 길이 음성 번역 등 3개 과제에서 4개 언어 분야에서 TOP 1을 차지했습니다.
그러나 연구와는 별도로 주요 제조업체들은 음성 언어 AI 기술 구현에 대해 서로 다른 생각을 가지고 있습니다.
최신 연구를 기반으로 자체 제품(음성 비서, 검색 엔진 등)을 최적화하는 것 외에도 일부 제조업체는 모델을 직접 오픈 소스로 만들거나 개발자가 호출할 수 있는 AI 프레임워크로 만드는 것을 선택합니다.
이러한 AI 기능은 AI에 노출된 적이 없는 많은 개발자에게는 "너무 난해"하며, 이를 어떻게, 어디서 사용해야 하는지조차 파악하기 어렵습니다.
어느 정도 이로 인해 많은 개발자가 최신 음성 및 언어 AI 기술에 액세스하지 못하게 되었습니다.
특히 최근 큰 인기를 끌고 있는 동시통역 AI는 실시간 성능과 모델 성능에 대한 특정 요구 사항을 갖추고 있으며, 상위 컨퍼런스에 해당 논문과 워크숍이 점점 더 많이 등장하고 있습니다.
라이브 방송 등의 산업에서 시청자층과 영향력 범위를 확대하려면 동시통역 AI도 빼놓을 수 없는 기술입니다.
그럼, 이를 구현하는 더 낮은 임계값 방법이 있나요?
이제 많은 제조업체가 새로운 방법을 시도하기 시작했습니다.
Huawei는 모바일 개발자를 위해 Huawei Mobile Core Services(HMS Core)(ML Kit) 툴킷을 기반으로 전문적인 기계 학습 서비스 세트를 만들었습니다. .
이를 바탕으로 개발자는 AI의 기술적 세부 사항을 숙지하지 않고도 자신이 개발하는 모바일 앱이나 애플리케이션에서 이러한 음성 언어 기술을 사용할 수 있습니다.
예를 들어 방금 본 AI 자막(온라인 텍스트 번역)과 동시통역은 화웨이 툴킷의 음성 언어 AI 기능을 기반으로 쉽게 구현됩니다.
이렇게까지 설명했으니 어떻게 시작하고 사용하는지 살펴보겠습니다.
예를 들어 Huawei 개발자 포럼에서 누군가 ML Kit의 실시간 음성 인식, 실시간 음성 전사 및 기타 기능을 기반으로 할머니를 위한 음성 검색 쇼핑 앱을 개발했습니다.
음성 기능을 구현하는 단계는 복잡하지 않습니다.
먼저 Huawei Developer Alliance 웹사이트에 실명 등록 완료, AppGallery Connect 구성, 프로젝트에서 HMS Core SDK의 Maven 웨어하우스 주소 구성 등 몇 가지 개발 준비를 해야 합니다.
그런 다음 해당 서비스 SDK를 통합하세요. 실시간 음성인식 서비스를 예로 들면, 코드는 다음과 같습니다.
dependencies<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">{</span><br><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//</span> 引入实时语音识别服务插件<br>implementation <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'com.huawei.hms:ml-computer-voice-asr-plugin:3.5.0.303'</span><br><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">}</span>
그러면 음성 서비스에 접속하는 단계로 진입하게 됩니다.
실시간 음성인식 서비스를 예로 들어보겠습니다. 애플리케이션의 인증 정보를 설정한 후 첫 번째 단계는 지원되는 언어 목록 LANGUAGE를 참조하여 실시간 음성 인식 매개변수 설정을 위한 인텐트를 생성하는 것입니다.
mSpeechRecognizer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.getLanguages</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span>new MLAsrRecognizer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.LanguageCallback</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span> <span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">{</span> <br> @Override <br>public void onResult<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span>List<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">String<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">></span> result<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span> <span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">{</span><br>Log<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.i</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span>TAG<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"support languages=="</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> result<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.toString</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">;</span><br><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">}</span><br>@Override<br>public void onError<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span><span style="color: rgb(34, 134, 58); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">int</span> errorCode<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> String errorMsg<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span> <span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">{</span><br>Log<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.e</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span>TAG<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"errorCode:"</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> errorCode <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"errorMsg:"</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> errorMsg<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">;</span><br><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">}</span><br><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">}</span><span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">;</span></span>
두 번째 단계는 액티비티를 생성하고, 이전에 생성된 음성 픽업용 인텐트를 전달하고, 그 결과를 원래 액티비티로 반환하는 것인데, 이는 실시간으로 60년대(60년대 포함) 이내의 음성을 인식할 수 있습니다.
private static final <span style="color: rgb(34, 134, 58); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">int</span> REQUEST_CODE_ASR <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">100</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">;</span><br><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">//</span> REQUEST_CODE_ASR表示当前Activity和拾音界面Activity之间的请求码,通过该码可以在当前Activity中获取拾音界面的处理结果。<br>startActivityForResult<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">(</span>intent<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> REQUEST_CODE_ASR<span style="color: rgb(153, 153, 119); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">)</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">;</span>
마지막으로 "onActivityResult" 메서드를 재정의하여 음성 인식 서비스에서 반환된 결과를 처리합니다(자세한 코드는 참조 링크 참조).
각 단계의 개발 세부 사항은 HMS Core 공식 웹사이트에서 자세한 개발 가이드를 확인할 수 있어 초보자도 쉽게 이용할 수 있습니다.
또한 HMS Core의 기계 학습 서비스는 Huawei 휴대폰뿐만 아니라 Android 기기 및 iOS 기기에도 적용 가능합니다.
어때요? 복잡한 매개변수 조정이나 교육 없이도 SDK에 접속하기만 하면 주요 제조사가 사용하는 수준의 AI 알고리즘 성능을 얻을 수 있습니다.
(그리고 ML Kit는 음성 언어 기술뿐만 아니라 텍스트, 이미지 등 다양한 AI 알고리즘 기능도 제공합니다. 자세한 내용은 기사 마지막 부분의 "원문 읽기"를 클릭하고 ML Kit 공식 페이지를 참조하세요. 웹사이트).
그러나 최고의 앵커들에게는 아무리 자신의 일에 전념해도 방송을 떠나야 할 시간은 항상 있기 마련입니다.
사실, 사용하기 쉬운 도구를 통해 모바일 애플리케이션 개발자에게 장기간 축적된 기술 역량을 공개하는 이러한 접근 방식은 화웨이에만 있는 것이 아닙니다.
Google의 GMS Core이든 Apple의 다양한 개발자용 키트이든, 핵심 목적은 첨단 기술 구현의 문턱을 지속적으로 낮추어 더 많은 개발자가 기술적인 문제 외에 더 많은 에너지와 노력을 쏟을 수 있도록 하는 것입니다. 창의력에.
결과적으로 휴대폰 사용자들은 최신 기술을 다양하고 재미있고 창의적인 형태로 휴대폰에서 직접 경험할 수 있다는 소식에 자연스럽게 기뻐합니다.
제조업체의 경우 애플리케이션의 번영은 생태 순환의 가장 중요한 노드를 구성하여 외부적으로는 더 많은 사용자를 유치하고 내부적으로는 더 많은 우수한 개발자를 모읍니다.
위 내용은 AI는 어떻게 동유희가 퇴근하지 못하게 막나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!