블로그 목록으로 돌아가기
Technical Whitepaper #833

초·중·고 AI 디지털교과서(AIDT) 온디바이스 음성 인식(STT)과 영어 발음 음소(Phoneme) 평가: ZeliDesk의 로컬 Whisper 8-bit 양자화 파이프라인, CTC 음향 정렬, 및 학생 음성 데이터 주권 수호 아키텍처

학생 음성 생체 정보의 외부 클라우드 유출 0바이트! 교실 40대 PC에서 인터넷 없이 동작하는 실시간 온디바이스 Whisper STT, 음소 단위 CTC 정렬 발음 채점(Accuracy·Fluency·Completeness·Prosody), 및 아동 개인정보 영구 보호 아키텍처 심층 분석

목차 (Table of Contents)

"학생의 음성은 단순한 텍스트 데이터가 아닙니다. 목소리의 기본 주파수(F0), 성대 진동수, 비강 울림은 지문이나 안면 인식과 동일한 개인의 고유 생체인식 정보(Biometric PII)입니다. 초·중·고 40대 PC에서 운영되는 AI 디지털교과서(AIDT) 영어 말하기 수업에서 학생 음성을 해외 빅테크 클라우드로 전송하는 것은 법적·윤리적으로 중대한 위협입니다. ZeliDesk는 교실 내 단 한 바이트의 패킷도 외부로 유출하지 않는 100% 온디바이스 음성 인식 및 음소 발음 평가 파이프라인을 구축하여 학생 데이터 주권과 즉각적인 교육적 피드백을 동시에 실현합니다."

1. 초·중·고 영어 AIDT와 음성 생체 인식 데이터의 법적·기술적 딜레마

2025~2026 대한민국 교육부의 초·중·고 AI 디지털교과서(AIDT) 전면 도입에서 가장 큰 비중을 차지하는 교과는 영어입니다. 영어 AIDT의 핵심은 학생이 화면의 문장을 읽었을 때 음성을 인식하여(Speech-to-Text) 단어와 음소 단위로 발음의 정확도를 진단하고, 맞춤형 교정 가이드를 제공하는 데 있습니다.

그러나 기존의 상용 클라우드 기반 음성 API(OpenAI Whisper API, Google Cloud Speech, Azure Speech)를 공교육 교실에 도입할 경우 다음과 같은 심각한 장벽에 봉착합니다:

공교육 현장의 핵심 요구 조건

교사와 교육청이 요구하는 음성 평가의 단 하나의 해답은 "교실 PC 자체에서 인터넷 접속 없이 200ms 이내에 음소 단위 발음 분석을 끝내고, 학생 음성 파일은 평가 즉시 메모리에서 영구 파기되는 온디바이스 에지 아키텍처"입니다.

2. WASAPI 저지연 오디오 프론트엔드 및 WebRTC VAD 묵음 필터링 파이프라인

고정밀 음소 평가를 위해 ZeliDesk는 Windows의 WASAPI(Windows Audio Session API)를 직접 제어하는 네이티브 오디오 캡처 엔진을 구현했습니다. 레거시 waveIn이나 부하가 큰 DirectSound 대신, WASAPI 공유 모드(Shared Mode)의 이벤트 드리븐 버퍼링을 활용하여 10ms 단위의 무지연 오디오 스트림을 수집합니다.

단계 모듈명 입력 포맷 출력 포맷 및 제어 알고리즘
1단계: 캡처 WASAPI Audio Capture 마이크 하드웨어 기본 (44.1/48kHz Stereo) 16kHz 16-bit Mono PCM (온디바이스 리샘플링)
2단계: 잡음 제거 Spectral Subtraction Filter 16kHz Mono PCM 교실 배경 에어컨·팬 소음 대역(-18dB 감쇄) 정제
3단계: VAD WebRTC Voice Activity Detector 10ms 단위 오디오 프레임 (160 samples) 유효 음성 시작점(Speech Start) 및 종료점(End of Speech) 트리거
4단계: 정규화 LUFS Peak Normalizer 가변 음량 PCM 스트림 -20 LUFS 표준 음압 평활화 (학생 목소리 크기 편차 보정)

다음은 WASAPI 이벤트 링 버퍼와 WebRTC VAD를 결합하여 발화 구간만을 슬라이싱하는 핵심 C# P/Invoke 로직입니다:

// ZeliDesk.Audio.Services/WasapiAudioCaptureService.cs
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;

public sealed class WasapiAudioCaptureService : IDisposable
{
    private const int TargetSampleRate = 16000; // Whisper & CTC 표준 규격
    private const int TargetChannels = 1;       // 모노 1채널
    private readonly MemoryStream _audioBuffer = new(65536);
    private readonly VadAggressiveness _vadMode = VadAggressiveness.Mode3; // 교실 잡음 차단 고감도

    public async Task CaptureSpeechUtteranceAsync(CancellationToken ct)
    {
        _audioBuffer.SetLength(0);
        int silenceFramesCount = 0;
        bool speechStarted = false;

        while (!ct.IsCancellationRequested)
        {
            byte[] frame10ms = await ReadNextWasapiFrameAsync(ct);
            bool isSpeech = WebRtcVadInterop.ProcessFrame(frame10ms, TargetSampleRate, _vadMode);

            if (isSpeech)
            {
                speechStarted = true;
                silenceFramesCount = 0;
                await _audioBuffer.WriteAsync(frame10ms, ct);
            }
            else if (speechStarted)
            {
                silenceFramesCount++;
                await _audioBuffer.WriteAsync(frame10ms, ct);

                // 발화 종료 후 600ms 이상 묵음 지속 시 문장 발화 완료 판정
                if (silenceFramesCount >= 60)
                {
                    break;
                }
            }
        }

        return _audioBuffer.ToArray();
    }
}

3. Whisper INT8/FP16 경량 온디바이스 음향 인코더-디코더 최적화

수집된 16kHz PCM 오디오는 온디바이스 경량 STT 엔진인 Whisper-Base / Whisper-Small (INT8 양자화 모델)로 공급됩니다. ZeliDesk는 학교 컴퓨터실의 인텔 내장 그래픽(UHD 630, Iris Xe) 및 AMD APU 환경에서 원활히 구동될 수 있도록 whisper.cpp 네이티브 런타임과 C#을 다이렉트 바인딩했습니다.

// ZeliDesk.Audio.Services/WhisperOnDeviceTranscriber.cs
public class WhisperOnDeviceTranscriber
{
    private readonly IntPtr _whisperCtx;

    public WhisperTranscriptResult Transcribe(float[] pcm32Data)
    {
        var whisperParams = WhisperNative.whisper_full_default_params(WhisperSamplingStrategy.Greedy);
        whisperParams.n_threads = Math.Min(4, Environment.ProcessorCount);
        whisperParams.language = "en";
        whisperParams.translate = false;
        whisperParams.no_context = true;             // 이전 문장 오염 차단
        whisperParams.single_segment = true;         // 단일 문장 집중
        whisperParams.print_timestamps = true;       // 음소 정렬용 타임스탬프 필수 생성

        WhisperNative.whisper_full(_whisperCtx, whisperParams, pcm32Data, pcm32Data.Length);

        int n_segments = WhisperNative.whisper_full_n_segments(_whisperCtx);
        var tokens = new List();

        for (int i = 0; i < n_segments; ++i)
        {
            long t0 = WhisperNative.whisper_full_get_segment_t0(_whisperCtx, i);
            long t1 = WhisperNative.whisper_full_get_segment_t1(_whisperCtx, i);
            string text = WhisperNative.whisper_full_get_segment_text(_whisperCtx, i);
            tokens.Add(new WhisperTokenSegment(text, t0 * 10, t1 * 10)); // ms 단위 변환
        }

        return new WhisperTranscriptResult(tokens);
    }
}

4. G2P 음소 변환과 CTC 음향 정렬 기반 4차원 발음 채점 알고리즘

단순히 학생의 말이 맞았는지 틀렸는지를 텍스트로 판정하는 것은 교육적 의미가 부족합니다. AIDT 영어 평가의 본질은 "어느 단어의 어떤 음소(Phoneme)에서 발음 오류가 발생했는가"를 학생에게 시각적으로 짚어주는 것입니다.

이를 위해 ZeliDesk는 G2P(Grapheme-to-Phoneme) 규칙 엔진과 CTC(Connectionist Temporal Classification) 음향 정렬기를 결합한 4차원 다면 발음 평가 시스템을 탑재했습니다.

4대 발음 평가 지표 (The 4 Evaluation Dimensions)

  1. 정확도 (Accuracy Score, 0~100점): 교과서 표준 발음 열(Reference IPA)과 학생 발화 음향 특징(Acoustic Log-Likelihood) 간의 레벤슈타인 음소 거리(Levenshtein Phoneme Distance)를 연산합니다. 특정 음소(예: /f/ vs /p/, /l/ vs /r/)의 오발음 발생 시 감점 및 하이라이트.
  2. 유창성 (Fluency Score, 0~100점): 발화 지속 시간 대비 유효 음절 수(WPM, Words Per Minute)를 측정하고, 단어와 단어 사이의 부자연스러운 침묵(Hesitation > 450ms) 빈도를 통계적으로 분석합니다.
  3. 완전성 (Completeness Score, 0~100점): 제시된 문장의 전체 단어 중 학생이 누락(Deletion)하거나 건너뛴 단어의 비율을 산출합니다.
  4. 운율 (Prosody Score, 0~100점): 오디오 프레임별 기본 주파수(F0 Pitch Contour)를 YIN 알고리즘으로 추출하여 표준 원어민 성조 궤적과의 피어슨 상관계수(Pearson Correlation)를 도출합니다. 의문문 끝 올림(Rising Intonation) 등을 정밀 검증합니다.
제시 교과서 문장 표준 음소 (Reference IPA) 학생 발화 인식 음소 음소 진단 결과 종합 평점
"Please pass me the salt." /p l iː z / /p æ s / /m iː / /ð ə / /s ɔː l t/ /p l iː z / /p ɑː s / /m iː / /d ə / /s ɔː l t/ 단어 'the'의 무성치간음(/ð/)을 설단음(/d/)으로 오발음 교정 권고 정확도: 88점
유창성: 94점
완전성: 100점
운율: 90점

5. 인메모리 휘발성 버퍼링과 학생 음성 데이터 영구 파기(Zero Retention) 메커니즘

ZeliDesk의 보안 아키텍처는 "데이터는 저장되지 않을 때 가장 안전하다"는 원칙에 기반합니다. 음성 파일이 하드디스크나 SSD 임시 폴더에 temp.wav 형태로 기록되는 순간 악성코드나 로컬 감사 도구에 의해 복원될 위험이 존재합니다.

따라서 ZeliDesk는 오디오 캡처부터 특징 추출, 음소 평가, 리포트 생성까지의 전 과정을 순수 인메모리 휘발성 버퍼(Volatile Memory Buffer) 내에서만 수행합니다:

// ZeliDesk.Audio.Security/SecureAudioMemoryDisposer.cs
using System;
using System.Runtime.InteropServices;

public static class SecureAudioMemoryDisposer
{
    [DllImport("kernel32.dll", EntryPoint = "RtlZeroMemory")]
    private static extern void RtlZeroMemory(IntPtr dest, IntPtr size);

    public static void WipeAudioData(byte[] pcmBuffer, GCHandle pinnedHandle)
    {
        if (pcmBuffer == null) return;

        // 1. 매니지드 가비지 컬렉터 힙 제로화
        Array.Clear(pcmBuffer, 0, pcmBuffer.Length);

        // 2. 핀 고정된 물리 메모리 주소 블록을 하드웨어 레벨에서 0x00 소거
        if (pinnedHandle.IsAllocated)
        {
            RtlZeroMemory(pinnedHandle.AddrOfPinnedObject(), (IntPtr)pcmBuffer.Length);
            pinnedHandle.Free();
        }
    }
}

6. 종합 결론: 공교육 AI 평가의 표준 모델과 ZeliDesk의 기술적 도약

초·중·고 교실과 국방 인트라넷의 지능형 교육 체계에서 기술의 화려함보다 앞서야 하는 것은 학습자의 존엄성과 데이터 주권입니다.

ZeliDesk의 온디바이스 음성 인식 및 음소 발음 평가 아키텍처는:

  1. 법적 무결성: 음성 생체 데이터를 클라우드로 1바이트도 보내지 않음으로써 개인정보보호법 및 아동 데이터 규제를 완벽 준수합니다.
  2. 교육적 즉시성: 교실 40대 PC가 인터넷 회선 대역폭과 무관하게 200ms 이내에 실시간 음소 발음 피드백을 제공합니다.
  3. 인프라 지속가능성: 고가의 클라우드 종량제 토큰 API 비용을 0원으로 절감하고, 기존 학교 컴퓨터실의 보급형 PC에서도 안정적으로 구동되는 극대화된 하드웨어 최적화를 증명했습니다.

ZeliDesk는 공교육 AIDT와 국가 공공 교육 인프라의 미래를 여는 단단한 온디바이스 엔지니어링 표준을 지속적으로 개척해 나가겠습니다.