실시간 음성 텍스트 변환을 위한 오픈 소스 도구

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
1.9K 00

일반 소개

실시간 트랜스크립션-fastrtc는 음성을 실시간으로 텍스트로 변환하는 데 중점을 둔 오픈 소스 프로젝트입니다. 이 프로젝트는 FastRTC 기술을 사용하여 지연 시간이 짧은 오디오 스트림을 처리하고 로컬 Whisper 모델을 사용하여 효율적인 음성 인식을 달성합니다. 이 프로젝트는 개발자 sofi444가 관리하며 GitHub에서 호스팅됩니다. 코드는 완전히 공개되어 있어 사용자가 자유롭게 수정할 수 있습니다. 사용자는 브라우저 또는 로컬에서 배포할 수 있으며, 인터페이스는 작동하기 쉬운 Gradio 및 FastAPI 모드를 지원합니다. 회의 기록, 라이브 자막 및 기타 시나리오에 적합하여 개인 및 개발자의 요구 사항을 충족합니다. 이 프로젝트는 경량 및 다국어 지원, 안정적인 작동, 손쉬운 확장을 강조합니다.

实时语音转文字的开源工具

 

기능 목록

  • 실시간 음성 녹음: 마이크를 통해 밀리초 단위의 짧은 지연 시간으로 음성을 텍스트로 즉시 변환합니다.
  • 음성 활동 감지(VAD): 음성의 시작과 끝을 자동으로 식별하여 전사 프로세스를 최적화합니다.
  • 다국어 지원: 영어, 중국어 및 기타 언어(위스퍼 모델 기준).
  • 듀얼 인터페이스 옵션: 직관적인 Gradio 인터페이스와 사용자 지정 가능한 FastAPI 인터페이스.
  • 로컬 모델 실행: 위스퍼 모델을 사용하면 인터넷에 계속 연결할 필요 없이 오프라인 트랜스크립션이 지원됩니다.
  • 파라미터 조정: 오디오 스트림, VAD 임계값 및 모델 배치 크기 구성을 지원합니다.
  • 유연한 배포: 로컬에서 실행하거나 허깅 페이스 스페이스와 같은 플랫폼을 통해 배포할 수 있습니다.
  • 오류 피드백: 디버깅을 위해 연결 실패 또는 구성 오류를 명확하게 표시합니다.

 

도움말 사용

설치 프로세스

실시간 트랜스크립션 패스트트랙을 사용하려면 파이썬 환경과 관련 종속성을 준비해야 합니다. 다음은 사용자가 문제 없이 설치하고 실행할 수 있도록 하기 위한 자세한 단계입니다.

  1. 시스템 요구 사항 확인
    • Python 버전: >= 3.10.
    • 마운팅 ffmpeg오디오 처리에 사용됩니다.
    • 권장 하드웨어: 모델 추론을 가속화하기 위한 GPU(예: MPS 또는 CUDA), CPU도 실행할 수 있지만 속도가 느립니다.
  2. 클론 창고
    터미널에서 다음 명령을 실행하여 프로젝트 코드를 가져옵니다:

    git clone https://github.com/sofi444/realtime-transcription-fastrtc
    cd realtime-transcription-fastrtc
    
  3. 가상 환경 설정
    종속성 충돌을 피하려면 Python 가상 환경을 만드세요. 이를 위해 공식적으로 권장되는 두 가지 방법이 있습니다:
    모드 1: 자외선 사용(권장)
    먼저, 설치 uv(참조. https://docs.astral.sh/uv/)를 클릭한 다음 실행합니다:

    uv venv --python 3.11
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    uv pip install -r requirements.txt
    

    방법 2: pip 사용

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  4. ffmpeg 설치
    운영 체제에 따른 설치 ffmpeg::
    macOS::

    brew install ffmpeg
    

    Linux(우분투/데비안)::

    sudo apt update
    sudo apt install ffmpeg
    

    Windows(컴퓨터)::

    • 다운로드 ffmpeg 실행 파일(에서 https://ffmpeg.org/download.html).
    • 시스템 환경 변수에 추가하거나 프로젝트 루트 디렉터리에 넣습니다.
  5. 환경 변수 구성
    프로젝트 루트 디렉터리에서 .env 파일에 다음을 추가합니다:

    UI_MODE=fastapi
    APP_MODE=local
    SERVER_NAME=localhost
    PORT=7860
    MODEL_ID=openai/whisper-large-v3-turbo
    
    • UI_MODE: 설정 gradio Gradio 인터페이스를 사용하여 다음을 설정합니다. fastapi 사용자 지정 HTML 인터페이스 사용(기본값).
    • APP_MODE로컬 실행은 다음과 같이 설정됩니다. local클라우드 배포는 다음과 같이 설정됩니다. deployed.
    • MODEL_ID위스퍼 모델을 지정합니다(기본값). openai/whisper-large-v3-turbo.
    • SERVER_NAME서버 주소, 기본값 localhost.
    • PORT포트 번호, 기본값 7860.
  6. 프로젝트 실행
    메인 프로그램을 실행합니다:

    python main.py
    

    터미널에 URL이 표시됩니다(예 http://localhost:7860Gradio 모드에서는 포트가 다를 수 있으므로 터미널 프롬프트에 주의하세요.

주요 기능

실시간 음성 녹음

  • 전사 시작인터페이스를 열고 '녹음 시작' 버튼을 클릭하여 브라우저에서 마이크에 액세스할 수 있도록 권한을 부여합니다. 시스템이 자동으로 음성을 감지하여 텍스트를 표시합니다.
  • 결과 보기: 필사된 텍스트가 인터페이스 텍스트 상자에 실시간으로 표시되며 최신 콘텐츠로 자동 스크롤됩니다.
  • 트랜스크립션 일시 중단음성 입력을 일시 중지하려면 '중지' 버튼을 클릭합니다.
  • 다음 사항에 유의하십시오.짧은 지연 시간을 보장하기 위해 프로젝트의 기본값은 배치 크기 1, 즉 수신된 모든 오디오 클립을 즉시 트랜스크립션합니다.

음성 활동 감지(VAD)

  • VAD는 자동으로 음성과 무음을 구분하여 트랜스크립션 효율을 향상시킵니다. 조정 가능한 매개변수(FastRTC 설명서 참조) https://fastrtc.org):
    • audio_chunk_duration오디오 클립 길이, 기본값은 0.6초입니다.
    • started_talking_threshold음성 시작 임계값, 기본값은 0.2초입니다.
    • speech_pad_ms자동 채우기, 기본값 400밀리초.
  • 수정: 편집 main.py 를 사용하거나 환경 변수를 통해 매개 변수를 전달할 수 있습니다.

인터페이스 전환

  • 라디오 인터페이스빠른 테스트에 이상적인 이 인터페이스에는 녹화 버튼과 텍스트 표시 영역이 있습니다. 설정 UI_MODE=gradio 나중에 실행하여 단말기에서 표시되는 주소에 액세스합니다.
  • FastAPI 인터페이스: 사용자 지정을 지원하며 개발자에게 적합합니다. 수정 index.html 스타일 또는 기능을 조정할 수 있습니다. 설정 UI_MODE=fastapi 실행 후 다음을 방문하세요. http://localhost:8000.

주요 기능 작동

로컬 위스퍼 모델

  • 기본 모델:openai/whisper-large-v3-turbo가볍고 다국어를 지원하며 뛰어난 성능을 제공합니다.
  • 모델 변경: 설정 MODEL_ID예 openai/whisper-small(로우 프로파일 디바이스용). 다른 허깅 페이스 ASR 모델 지원(https://huggingface.co/models?pipeline_tag=automatic-speech-recognition).
  • 언어 설정: 기본 번역은 영어이며, 다른 언어를 번역해야 하는 경우 코드에서 설정합니다. language 매개변수(예 language=zh (중국어를 나타냄).
  • 실행 최적화: 첫 번째 실행은 지연 시간을 줄이기 위해 모델을 워밍업합니다. GPU 가속을 권장합니다.

다국어 지원

  • 모델에 따라 영어, 중국어, 스페인어 및 기타 언어를 지원합니다.
  • 구성: 설정에서 main.py 설정 transcribe 작업을 클릭하고 대상 언어를 지정합니다.
  • 예: 중국어 음성 전사, 설정 language=zh마이크 입력이 깨끗한지 확인하세요.

클라우드 배포

  • 얼굴 공간 안아주기: 설정 APP_MODE=deployedTurn 서버를 구성하려면 다음을 참조하세요. https://fastrtc.org/deployment/). 코드를 업로드하고 플랫폼의 메시지에 따라 실행합니다.
  • 기타 플랫폼포트가 열려 있는지 확인하기 위해 WebRTC 및 서버 환경을 수동으로 구성해야 합니다.

오류 처리

  • 일반적인 오류::
    • "연결하지 못함": 네트워크 또는 WebRTC 구성을 확인하세요.
    • "모델을 찾을 수 없음": 확인됨 MODEL_ID 맞습니다. 모델이 다운로드되었습니다.
    • "ffmpeg를 찾을 수 없음": 다음과 같은 경우 ffmpeg 설치 및 시스템 경로에 있습니다.
  • 테스트 중 구성 요소 조정오디오 샘플 속도, 모델 로딩 상태 등을 기록하기 위해 런타임에 터미널 로그를 확인합니다.

주의

  • 소프트웨어실시간 추론에 권장되는 GPU, MPS 지원 whisper-large-v3-turbo.
  • 브라우저(소프트웨어)WebRTC가 제대로 작동하는지 확인하려면 Chrome 또는 Firefox를 사용하는 것이 좋습니다.
  • 음성 정확도마이크 품질 및 환경에 따라 달라질 수 있으며, 조용한 환경에서 사용하는 것이 좋습니다.

 

애플리케이션 시나리오

  1. 절차
    원격 또는 현장 회의에서 실시간으로 토론 내용을 기록하여 트랜스크립트를 생성하세요. 팀에서 직접 내보내고 대조할 수 있으므로 수동으로 메모할 필요가 없습니다.
  2. 라이브 캡션
    실시간 생방송에 실시간 자막을 추가하여 콘텐츠 접근성을 개선하세요. 앵커는 Gradio 인터페이스를 통해 빠르게 작업할 수 있으며 시청자는 즉시 텍스트를 볼 수 있습니다.
  3. 언어 학습
    학생들이 외국어를 연습할 때 발음을 텍스트로 변환하여 정확도를 확인할 수 있습니다. 영어, 중국어 및 기타 학습 시나리오에 적합한 다국어를 지원합니다.
  4. 개발 역량
    개발자는 프로젝트를 다른 애플리케이션에 통합하여 WebRTC 또는 ASR 기능을 테스트할 수 있습니다. 오픈 코드는 2차 개발을 지원합니다.

 

QA

  1. 네트워크가 필요한가요?
    로컬 작동을 위해 인터넷 연결이 필요하지 않으며, 모델을 다운로드하여 오프라인에서 사용할 수 있습니다. 클라우드 배포에는 WebRTC를 위한 네트워크 지원이 필요합니다.
  2. 어떤 언어가 지원되나요?
    기본적으로 영어가 지원됩니다. 설정 language 매개변수는 위스퍼 모델에 따라 중국어, 스페인어 등을 지원할 수 있습니다.
  3. 전사 정확도를 높이는 방법은 무엇인가요?
    고품질 마이크를 사용하고, 조용한 환경을 유지하며, 대형 모델( whisper-large-v3-turbo).
  4. 인터페이스를 사용자 지정할 수 있나요?
    예, FastAPI 모드에서 편집 가능합니다! index.html를 클릭하고 스타일을 조정하거나 기능을 추가합니다.
  5. 트랜스크립션이 지연되는 이유는 무엇인가요?
    하드웨어 성능 부족 또는 네트워크 문제 때문일 수 있습니다. GPU를 권장하며, WebRTC 구성을 확인하세요.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...