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

생성일
이름
(ffmpeg) m4a통화녹음 파일 STT로 변환하기 (⭐⭐⭐)
Created by
  • 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 파일을 텍스트로 변환하기.