(ffmpeg) m4a통화녹음 파일 STT로 변환하기 (⭐⭐⭐)

태그
Empty
생성일
이름
(ffmpeg) m4a통화녹음 파일 STT로 변환하기 (⭐⭐⭐)
카테고리
Empty
작성자
data_popcorn

실습환경

•
Mac OS M1 (Sonoma 14.6.1(23G93))

워크플로우

배경

•
안드로이드 폰에서 기본 녹음기로한 통화녹음 m4a파일을 openAI Transcription API을 통해 텍스트로 변환하는 작업을 하려고 함.
•
테스트용 m4a 데이터샘플

과정

•
맥북 터미널에서 cURL로 실행해보니 m4a파일을 지원하지 않는다고 함.
•
file 07089191203_240710_194457.m4a 로 확인해보면 ISO Media, MPEG v4 system, 3GPP 인데 같은 m4a파일이더라도 openAI API가 인식하는 코덱이 다르면 변환을 해야한다고 chatGPT가 답변해줌.
•
해서, 이것을 ffmpeg로 다시 한번 변환 작업을 해봄
ffmpeg -i 07089191203_240710_194457.m4a -c:a aac -b:a 192k output.m4a
•
변환 전후 비교
◦
(전) ISO Media, MPEG v4 system, 3GPP
◦
(후) ISO Media, Apple iTunes ALAC/AAC-LC (.M4A) Audio
로컬에서 테스트해봤으니 이제 n8n 서버에서 직접 해보는 작업을 진행.
curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer <OPENAI_API_KEY>" \
  -H "Content-Type: multipart/form-data" \
  -F file=@output.m4a \
  -F model="whisper-1"
 
{"text":"이규리 시집 당신은 첫눈입니까? 상자 상자들을 두고 그들은 떠났다. 아래층에 맡겨둔 보물 아래층에 맡겨둔 약속을 아래층에 맡겨둔 질문을 아래층에 맡겨둔 당신의 아래층이 모두 가지세요. 그 상자를 나는 열지 않아요. 먼저온 꽃의 슬픔과 허기를 재울 때 고요이 찬 인연이 저물 때 생각해보면 가능이란 먼 것만은 아니었어요."}%

n8n 서버에서 ffmpeg 설치하는 과정

*클라우드는 안되고 셀프호스팅에서만 가능합니다.
본인의 n8n서버의 docker 설정을 열고 아래와 같이 진행합니다
1.
docker ps로 container id를 확인합니다.
•
docker ps
1.
docker exec 명령으로 루트 권한으로 접속합니다.
•
docker exec -it --user root [CONTAINER_ID] sh
apk add --no-cache ffmpeg
1.
설치가 잘 되었는지 체크합니다.
•
ffmpeg -version
이제, n8n서버에서 아래 워크플로우를 다운받고 넣어봅니다.
1.
m4a 파일 불러오기
1.
Read/Write Files from Disk
a.
도커 서버 저장소에 임시 파일을 생성하기.
1.
Execute Command
•
m4a를 AAC로 변환하기.
1.
Read/Write Files from Disk
•
변환된 파일을 다시 읽어오기
1.
OpenAI API
•
Transcribe a Recording 으로 m4a 파일을 텍스트로 변환하기.