>  기사  >  기술 주변기기  >  너무 빨라요! 10줄 미만의 코드로 단 몇 분 만에 비디오 음성을 텍스트로 인식합니다.

너무 빨라요! 10줄 미만의 코드로 단 몇 분 만에 비디오 음성을 텍스트로 인식합니다.

WBOY
WBOY앞으로
2024-02-27 13:55:02539검색

너무 빨라요! 10줄 미만의 코드로 단 몇 분 만에 비디오 음성을 텍스트로 인식합니다.

안녕하세요 여러분, 저는 Kite입니다

2년 전에는 오디오 및 비디오 파일을 텍스트 콘텐츠로 변환하는 작업이 어려웠지만 이제는 단 몇 분만에 쉽게 해결할 수 있습니다.

훈련 데이터를 얻기 위해 일부 회사에서는 Douyin 및 Kuaishou와 같은 짧은 비디오 플랫폼에서 비디오를 완전히 크롤링한 다음 비디오에서 오디오를 추출하고 텍스트 형식으로 변환하여 교육 코퍼스로 사용한다고 합니다. 빅 데이터 모델.

비디오 또는 오디오 파일을 텍스트로 변환해야 하는 경우 현재 제공되는 이 오픈 소스 솔루션을 사용해 볼 수 있습니다. 예를 들어, 영화나 TV 프로그램의 대화가 나오는 특정 시점을 검색할 수 있습니다.

더 이상 고민하지 않고 본론으로 들어가겠습니다.

Whisper

이 솔루션은 OpenAI의 오픈 소스 Whisper입니다. 물론 Python으로 작성되었습니다. 간단히 몇 개의 패키지를 설치한 다음 몇 줄의 코드를 작성하고 잠시 기다리면 됩니다(컴퓨터 성능에 따라 다름). 그리고 오디오와 비디오 길이(다름)를 결정하면 최종 텍스트 콘텐츠가 나오는데, 그렇게 간단합니다.

GitHub 창고 주소: https://github.com/openai/whisper

Fast-Whisper

상당히 단순화되었지만 여전히 프로그래머에게 충분히 효율적이지 않습니다. 결국 프로그래머는 단순성과 효율성을 선호하는 경향이 있습니다. Whisper를 설치하고 호출하는 것은 상대적으로 쉽지만 PyTorch, ffmpeg, Rust까지 별도로 설치해야 합니다.

그래서 Whisper보다 빠르고 간편한 Fast-Whisper가 탄생했습니다. Fast-Whisper는 Whisper를 단순히 캡슐화한 것이 아니라 CTranslate2를 사용하여 OpenAI의 Whisper 모델을 재구성한 것입니다. CTranslate2는 Transformer 모델을 위한 효율적인 추론 엔진입니다.

요약하자면, Whisper보다 4~8배 빠르다고 공식 발표되었습니다. GPU뿐 아니라 CPU도 지원할 수 있어 망가진 Mac도 사용할 수 있습니다.

GitHub 창고 주소: https://github.com/SYSTRAN/faster-whisper

사용하려면 두 단계만 거치면 됩니다.

  1. 종속성 패키지 설치
pip install faster-whisper
  1. 코드 작성,
from faster_whisper import WhisperModelmodel_size = "large-v3"# Run on GPU with FP16model = WhisperModel(model_size, device="cuda", compute_type="float16")# or run on GPU with INT8# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")# or run on CPU with INT8# model = WhisperModel(model_size, device="cpu", compute_type="int8")segments, info = model.transcribe("audio.mp3", beam_size=5)print("Detected language '%s' with probability %f" % (info.language, info.language_probability))for segment in segments:print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

네, 아주 간단합니다.

무엇을 할 수 있나요

우연히 짧은 영상을 만들고 닭국 문학 영상을 올리고 싶어하는 친구가 있어요. 닭국은 유명한 사람들의 인터뷰에서 나온 거예요. 그러나 그는 전체 비디오를 다시 보고 싶지 않았고 텍스트 내용을 얻은 다음 텍스트를 읽는 가장 빠른 방법을 사용하고 싶었습니다. 왜냐하면 텍스트를 읽는 것이 비디오를 보는 것보다 훨씬 빠르기 때문입니다. 검색했습니다.

한번 말씀드리자면, 영상을 다 볼 수 있는 경건함도 없다면 어떻게 계정을 잘 관리할 수 있겠습니까?

그래서 저는 그를 위해 Fast-Whisper를 사용하여 하나를 만들었습니다.

Client

클라이언트는 Swift를 사용하며 Mac만 지원합니다.

  1. 비디오를 선택하고
  2. "텍스트 추출"을 클릭하면 Python 인터페이스가 호출되며 잠시 기다려야 합니다.
  3. 표시되는 시작 및 종료 시간과 구문을 로드합니다. 시작 시간과 종료 이벤트를 선택하세요.
  4. "내보내기" 버튼을 클릭하면 동영상 클립이
, 길이 00:10

서버 측으로 내보내집니다. Python을 Flask와 함께 패키지화하여 외부 세계에 대한 인터페이스를 엽니다.

from flask import Flask, request, jsonifyfrom faster_whisper import WhisperModelapp = Flask(__name__)model_size = "large-v2"model = WhisperModel(model_size, device="cpu", compute_type="int8")@app.route('/transcribe', methods=['POST'])def transcribe():# Get the file path from the requestfile_path = request.json.get('filePath')# Transcribe the filesegments, info = model.transcribe(file_path, beam_size=5, initial_prompt="简体")segments_copy = []with open('segments.txt', 'w') as file:for segment in segments:line = "%.2fs|%.2fs|[%.2fs -> %.2fs]|%s" % (segment.start, segment.end, segment.start, segment.end, segment.text)segments_copy.append(line)file.write(line + '\n')# Prepare the responseresponse_data = {"language": info.language,"language_probability": info.language_probability,"segments": []}for segment in segments_copy:response_data["segments"].append(segment)return jsonify(response_data)if __name__ == '__main__':app.run(debug=False)

위 내용은 너무 빨라요! 10줄 미만의 코드로 단 몇 분 만에 비디오 음성을 텍스트로 인식합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제