스택큐힙리스트

어떻게 하면 OpenAI의 Whisper ASR에서 단어별 타임스탬프를 얻을 수 있을까요? 본문

카테고리 없음

어떻게 하면 OpenAI의 Whisper ASR에서 단어별 타임스탬프를 얻을 수 있을까요?

스택큐힙리스트 2024. 1. 27. 12:49
반응형

음성 인식을 위해 OpenAI의 Whisper 파이썬 라이브러리를 사용합니다. 단어 수준의 타임스탬프를 어떻게 얻을 수 있을까요?


OpenAI의 Whisper로 트랜스크라이브 하려면 (Ubuntu 20.04 x64 LTS 및 Nvidia GeForce RTX 3090에서 테스트됨):


conda create -y --name whisperpy39 python==3.9
conda activate whisperpy39
pip install git+https://github.com/openai/whisper.git
sudo apt update && sudo apt install ffmpeg
whisper recording.wav
whisper recording.wav --model large

Nvidia GeForce RTX 3090을 사용하는 경우, conda activate whisperpy39 이후에 다음을 추가하십시오:


pip install -f https://download.pytorch.org/whl/torch_stable.html
conda install pytorch==1.10.1 torchvision torchaudio cudatoolkit=11.0 -c pytorch

답변 1

나는 단어 수준의 타임스탬프(및 신뢰도)를 복구하기 위한 레포지토리를 생성했습니다. 또한 더 정확한 세그먼트 타임스탬프를 얻을 수 있습니다:
https://github.com/Jeronymous/whisper-timestamped


이것은 Whisper의 교차 어텐션 가중치에 기반하여 만들어졌습니다, Whisper 레포지토리에 있는 이 노트북에서. 나는 위치를 더 잘 찾기 위해 접근 방식을 약간 수정하였고, 실시간으로 교차 어텐션을 얻는 가능성을 추가하였습니다. 따라서 Whisper 모델을 두 번 실행할 필요가 없습니다. 긴 오디오를 처리할 때 메모리 문제가 없습니다.

참고 사항: 먼저, 와브2벡 모델을 사용하여 휘스퍼의 변환된 단어를 입력 오디오에 다시 정렬하는 방법을 시도했습니다. 이 접근 방식은 꽤 잘 작동하지만 여러 가지 단점이 있습니다 : 별도의 (와브2벡) 모델을 처리해야하며, 전체 신호에 대한 추가적인 추론을 수행하고, 언어당 하나의 와브2벡 모델을 가져야하며, 변환된 텍스트를 정규화하여 문자 집합이 와브2벡 모델의 문자 집합과 일치하도록 처리해야합니다 (예 : 숫자를 문자로 변환, %, 통화와 같은 기호). 또한 정렬은 일반적으로 휘스퍼에서 제거 되는 불명확성(처음 문장 재구성과 같이 와브2벡 모델이 인식해야 할 부분)에 문제가 있을 수 있습니다.

답변 2

[Title]: 오픈AI의 Whisper ASR에서 단어 수준의 타임스탬프를 얻는 방법
[Introduction]
모던한 음성 인식 기술은 빠르게 발전하고 있으며, 이는 많은 새로운 기회와 혁신을 제공합니다. 오픈AI의 Whisper ASR은 가장 최신의 음성 인식 모델 중 하나로, 높은 정확성과 성능으로 알려져 있습니다. Whisper ASR을 사용하여 음성 데이터를 텍스트로 변환할 때, 단어 수준의 타임스탬프를 가져옴으로써 더 정확하고 신뢰할 수 있는 문장 분석 및 음성 처리를 수행할 수 있습니다. 이 기능을 사용하기 위해서는 아래에 안내된 단계를 따라야 합니다.
[단계 1: 오픈AI API 접근을 위한 등록]
Whisper ASR의 단어 수준 타임스탬프를 얻으려면, 오픈AI API에 등록해야 합니다. 오픈AI의 공식 웹사이트를 방문하여 계정을 만들고, API 접근 권한을 받을 수 있습니다. 등록이 완료되면 API 키를 발급받아 안전한 곳에 보관해야 합니다.
[단계 2: OpenAI Python 클라이언트 설치]
단어 수준 타임스탬프를 얻기 위해서는 OpenAI Python 클라이언트를 설치해야 합니다. 오픈터미널에서 다음의 명령어를 입력하여 설치합니다:
```
pip install openai
```
[단계 3: 클라이언트 초기화 및 API 호출]
Python 코드를 통해 타임스탬프를 가져올 수 있습니다. 먼저 API 키를 올바른 값으로 대체해야 합니다. 다음 코드 스니펫은 클라이언트 초기화를 수행하는 예시입니다:
```python
import openai
openai.api_key = 'YOUR_API_KEY'
```
타임스탬프를 얻기 위해 `openai.Whisper.transcribe()` 함수를 사용할 수 있습니다. 아래의 예시 코드는 음성 파일을 읽고, Whisper ASR을 사용하여 단어 수준의 타임스탬프를 생성하는 방법을 보여줍니다:
```python
with open('audio.wav', 'rb') as f:
response = openai.Whisper.transcribe(
audio=f,
word_level_timestamps=True
)
```
[결론]
Whisper ASR의 단어 수준 타임스탬프 기능을 활용하면 음성 데이터를 정확하고 효과적으로 분석할 수 있습니다. 오픈AI API에 등록하고, OpenAI Python 클라이언트를 설치하고 초기화한 뒤, `openai.Whisper.transcribe()`를 호출하여 단어 수준의 타임스탬프를 얻을 수 있습니다. 이를 통해 음성 처리, 문장 분석 등 다양한 응용 분야에서 혁신적인 변화를 이끌어낼 수 있습니다.
[Important Keywords]
- Whisper ASR, 오픈AI, 단어 수준의 타임스탬프, 음성 인식 기술, API 접근, 클라이언트 설치, Python 코드, 예제 코드, 음성 파일, 정확성, 응용 분야

반응형
Comments