이 블로그 시리즈에서 Seasalt.ai가 완전한 현대 회의 경험을 만든 여정을 따라가보세요. 초기 시작부터 다양한 하드웨어와 모델에서의 최적화, 최첨단 NLP 시스템 통합, 그리고 궁극적으로 SeaMeet 협업 현대 회의 솔루션 구현까지.
알고리즘을 넘어서
Modern Meetings는 훌륭한 데모였지만 항상 데모 단계에 머물러 있었습니다. 실제로 프로덕션에 투입하기까지는 아직 갈 길이 멀었습니다. 우리는 먼저 Microsoft Azure 기술 스택을 사용하여 데모 버전을 성공적으로 구현했습니다. 하지만 소프트웨어의 다양한 결함을 인식한 후, 우리는 자체 알고리즘으로 교체하고 전체 경험을 더욱 부드럽고, 가볍고, 유연하게 만들기로 결정했습니다. Modern Meetings는 네 가지 주요 구성 요소를 가지고 있습니다:
- 마이크 어레이의 신호 처리, 특히 빔포밍
- 화자 분리 및 식별
- 맞춤형 음성 인식
- 더 나은 사용자 인터페이스
다음으로 모든 중요한 구성 요소에 대해 자세히 설명하겠습니다.

우리는 Modern Meetings의 네 가지 주요 구성 요소를 자체 기술 스택으로 개조했습니다: 1. 마이크 어레이 신호 처리; 2. 화자 분리 및 식별; 3. 맞춤형 음성 인식; 4. 현대 웹 인터페이스.
마이크 어레이의 신호 처리
단일 근접 마이크와 비교하여 마이크 어레이는 360도 범위에서 최대 5미터 거리까지 소리를 포착할 수 있습니다. 따라서 하나의 마이크 어레이는 10미터 x 10미터 중간 크기 회의실에서 음성을 수집할 수 있습니다. 모든 마이크가 하나의 장치에 집중되어 회의실의 케이블 혼잡을 크게 줄이고 설치 및 유지보수를 간소화합니다. 반면, 마이크 어레이를 사용하는 다운스트림 목표는 모델에 최고 품질의 데이터를 제공하는 것입니다. 따라서 자동 음성 인식 전에 여러 신호 처리 알고리즘을 먼저 수행합니다. 전처리 파이프라인의 핵심은 빔포밍 알고리즘입니다. 우리가 원형 다중 마이크 어레이를 사용하기 때문에 소리가 각 마이크에 도달하는 미세한 시간 차이를 활용할 수 있습니다. 빔포밍의 역할은 신호의 주요 특성(최적 빔)을 결정하고, 이러한 주파수를 증폭하면서 불필요한 소리를 감쇠시키는 것입니다. 효과는 노이즈 제거 및 디리버브 제거로, 주요 신호(음성)를 더 크고 명확하게 만듭니다.
많은 빔포밍 알고리즘의 최적 성능은 마이크에 대한 음원(화자)의 위치를 알아야 합니다. 하지만 실제 응용에서는 이것이 거의 불가능하므로, 우리는 먼저 음원 방향을 결정하여 원거리 가중치를 계산합니다. 이 단계를 음원 위치 결정 또는 더 구체적으로 도래 방향(DOA)이라고 합니다. 우리가 직면한 주요 문제는 부드러움입니다. 알고리즘이 대략적으로 올바른 결과를 제공할 수 있지만, 결정된 음원이 실제 방향 양쪽 30도 범위 내에서 계속 변동하여 빔포밍에 영향을 미칩니다. 우리의 해결책은 음원 위치 결정 알고리즘이 인간 음성의 주요 주파수를 인코딩하는 주파수 대역만 사용하도록 하고, 부드러운 기술과 결합하여 DOA 결과의 “역사”를 유지하여 평균을 내는 것입니다. 더 신뢰할 수 있는 DOA 결과로 우리는 원거리 가중치를 계산하고 최적 빔을 결정할 수 있습니다.
Kinect DK에서 실행되는 일련의 알고리즘: 빔포밍, 노이즈 제거, 디리버브 제거, 음원 위치 결정으로 우리는 실시간으로 명확하게 증폭된 인간 음성을 생성하고 화자의 방향을 대략적으로 위치시킬 수 있습니다. 이는 다음 단계인 화자 식별에 크게 도움이 됩니다.
화자 분리 및 식별
회의 전사 시스템의 다음 핵심 구성 요소는 자동 화자 식별입니다. 이 시리즈의 이전 부분에서 설명한 바와 같이, 화자 정보가 없는 혼란스러운 대화 텍스트를 읽는 것은 실망스럽고 시스템의 의미를 완전히 잃어버립니다. 이것이 화자 식별의 역할입니다.
이 구성 요소를 통해 우리는 전사와 오디오를 화자 이름과 자동으로 정렬할 수 있습니다. 구현 방법은 분리 기술을 사용하여 오디오 세그먼트를 녹음의 화자 수와 동일한 그룹으로 클러스터링하는 것입니다. 이 방법은 음성 활동 감지(VAD) 시스템을 사용하여 음성 세그먼트를 결정하고, 그로부터 짧은 윈도우의 벡터 표현을 추출합니다. 각 윈도우에서 추출된 벡터를 발화 수준 xvector라고 하며, 평균화하여 화자 수준 xvector를 얻습니다. 그런 다음 이러한 xvector를 클러스터링하고, 각 클러스터는 동일한 화자에 속하는 음성 세그먼트를 나타냅니다. 주목할 점은 클러스터링 알고리즘의 선택이 분리 성능에 크게 영향을 미치며, 우리는 임계값 친화성 행렬을 사용하고 정규화된 최대 고유값 간격(NME) 값을 자동 튜닝하는 스펙트럼 클러스터링 알고리즘을 결합하여 최적의 분리 오류율(DER)을 달성했습니다. 마지막으로 각 클러스터가 나타내는 화자를 결정해야 합니다. 회의 전에 40초 녹음을 통해 각 화자의 xvector를 추출하고 클러스터링 결과와 비교하여 해당 화자를 식별할 수 있습니다.
이 프로세스의 유연성은 다음과 같습니다: 많은 회의 시나리오에서 각 화자의 사전 녹음을 얻는 것은 현실적이지 않습니다. 예를 들어 VIP 고객이 있는 비즈니스 회의나 50명의 발표자가 있는 대형 세미나가 있습니다. 이러한 경우 등록 단계를 건너뛰고, 우리의 분리 시스템은 여전히 음성 세그먼트를 그룹화할 수 있습니다. 각 클러스터에서 몇 초의 오디오만 수동으로 추출하면 화자 신원을 결정할 수 있습니다. 전용 현대 사용자 인터페이스와 함께 동일한 기능을 제공하지만 더 유연합니다.
맞춤형 음성 인식
Microsoft 회의 전사기의 강력함을 이해한 후, 우리는 시스템을 완전히 독립적으로 만들어 기존의 혁신적인 제품을 넘어서기로 준비했습니다. Modern Meetings 및 모든 전사 제품의 핵심은 자동 음성 인식(ASR) 모델이므로 우리는 가장 많은 관심을 기울였습니다. Azure Cognitive Services는 다양한 언어와 방언의 모델 옵션을 제공하지만, 서로 다른 방언 간의 성능을 구분하기 어렵습니다. 영어의 다양한 방언에 대해, 가장 큰 노력과 데이터는 아마도 미국 영어 모델에 집중되고, 그 다음 액센트가 있는 데이터로 다양한 방언 모델을 미세 조정할 것입니다. 우리는 독립적인 모델을 제공한다면 특정 사용 사례에 맞게 조정되도록 보장하고 싶었습니다. 이는 수천 시간의 현지화된 오디오와 전사를 수집하고, 수주간의 훈련과 미세 조정에 투자하는 것을 의미합니다. 하지만 모델이 각 에포크마다 개선되고 약속을 이행하는 것을 보는 것은 매우 만족스럽습니다.
견고한 기본 모델을 확보한 후, 다음 단계는 가용성과 맞춤화를 확장하는 것입니다. 각 업계에는 ASR 모델이 희귀한 단어와 일반적이고 발음이 유사한 단어를 구분하기 어렵게 만드는 대량의 전용 용어가 있습니다.
우리의 해결책은 SeaVoice로, 사용자에게 특정 요구사항에 맞게 모델을 미세 조정할 수 있는 중앙화된 플랫폼을 제공합니다.