쿡북 / 회의록
녹음으로 만드는
회의록

스크린샷. 로컬에서 실행 중인 템플릿입니다.
- 모델
- ink-whisper
- 언어
- 메뉴에 17개
- 라이선스
- Apache-2.0
- 기술 스택
- Next.js 16React 19AI SDKIndexedDBshadcn/ui
- Cartesia 제품
- Ink
하는 일
회의는 브라우저에 저장되므로 데이터베이스도 로그인도 필요 없습니다. 회의마다 Markdown으로 복사할 수 있습니다. 별도 페이지에서 모든 회의의 미완료 액션 아이템을 모아 봅니다.
직접 실행하기
설치
Node 22.22 이상에서 아래 명령어를 실행하세요. pnpm도 쓸 수 있습니다. 아래 표를 보고
.env.local을 채우세요. 빠진 키가 있으면 페이지가 무엇인지 알려 줍니다.환경 변수 - CARTESIA_API_KEY
play.cartesia.ai/keys- LLM_MODEL
provider/model, 예를 들어openai/gpt-5.4-mini- OPENAI_API_KEY
LLM_MODEL이 openai/로 시작할 때- ANTHROPIC_API_KEY
LLM_MODEL이 anthropic/으로 시작할 때- AI_GATEWAY_API_KEY
- 그 밖의 제공업체. Vercel에서는 필요 없음
- APP_PASSWORD
- 로컬에서는 선택 사항. Vercel에서는 필수이며, none으로 두면 앱이 공개됨
- TRUST_PROXY
- 선택 사항. 자체 리버스 프록시 뒤에서는 1
회의 녹음
개발 서버가 출력한 로컬 URL을 열고 Start recording을 누릅니다. 몇 초 동안 말합니다. 그다음 Stop and write notes를 누릅니다. 오디오 파일을 쓰려면 녹음기 위의 업로드 탭으로 바꿉니다.
코딩 에이전트로 만들기
어디서 시작하고 무엇을 먼저 읽어야 하는지 코딩 에이전트에게 알려 주는 프롬프트입니다.
Build a meeting notes app with Cartesia speech to text. Start from https:/ and follow its AGENTS.md for the commands, files and rules. The server route transcribes the recording with client.stt.transcribe from @cartesia/cartesia-js and model ink-whisper (ink-2 is streaming only and does not work on the batch endpoint). The AI SDK writes the summary, decisions and action items with generateText and a zod schema. The browser posts audio to the route and never sees CARTESIA_API_KEY. If I don't have a Cartesia API key yet, follow https:/ to get one.
작동 방식
이렇게 만든 이유
전사본을 먼저 저장합니다
ink-whisper가 전사본을 돌려주는 즉시 페이지가 저장하고, 그다음에 노트를 요청합니다. 요약이 실패해도 회의에는 전사본이 남고, LLM에 다시 요청하는 Retry 버튼이 표시됩니다.
녹음이 끝난 파일은 파일용 모델로 보낸다
Cartesia의 음성 인식 모델은 두 가지입니다. Ink 2는 스트리밍되는 음성을 실시간으로 받아 적고, 다 끝난 파일은 받지 않습니다. ink-whisper는 녹음 전체를 요청 한 번으로 받기 때문에 이 앱은 그쪽으로 보냅니다.
업로드는 4 MB까지
Vercel은 4.5MB가 넘는 요청 본문을 거부합니다. 그래서 앱은 업로드를 4MB로 제한하고, 녹음은 3.6MB나 20분에서 멈춥니다. 다른 호스트에서는 lib/limits.ts에서 한도를 올릴 수 있습니다.
원하는 대로 바꾸기
다른 언어 전사
녹음하기 전에 Spoken language 메뉴에서 언어를 고릅니다. 메뉴에 언어를 더하려면 lib/limits.ts의 목록을 늘립니다. 모델 자체는 훨씬 많은 ISO 639-1 코드를 지원합니다.
회의록 내용 바꾸기
항목을 더하거나 빼려면 lib/schema.ts의 스키마를 고칩니다. LLM이 받는 지시를 바꾸려면 lib/prompt.ts를 고칩니다.
서버에 회의록 저장
lib/store.ts의 비동기 함수 다섯 개를 데이터베이스 호출로 바꾸고 훅은 그대로 두세요.
자주 묻는 질문
회의 오디오는 어디로 가나요?
브라우저가 앱 자체의 서버로 보내고, 서버는 이를 Cartesia에 넘겨 받아쓴 뒤 버립니다. 노트를 만들 때 전사본은 내 LLM 공급자에게 가고, Cartesia 키는 서버 밖으로 나가지 않습니다. 녹음하기 전에 모두에게 동의를 받으세요.
회의 중에 실시간 전사본을 볼 수 있나요?
이 앱으로는 안 됩니다. 녹음을 멈출 때 전체를 한 번에 보냅니다. 실시간 자막이 필요하면 마이크 음성을 Cartesia Ink 2로 스트리밍하세요.
어떤 언어를 지원하나요?
메뉴에는 영어와 스페인어부터 일본어와 우크라이나어까지 17개 언어가 있습니다. LLM은 회의에서 쓴 언어로 노트를 씁니다.
회의 하나의 비용은 얼마인가요?
받아쓰기는 무음을 포함해 오디오 2초마다 Cartesia 크레딧 1개가 들어서, 30분 회의는 900크레딧입니다. 노트를 만들 때 내 공급자 키로 LLM을 한 번 호출하는 비용이 더해집니다.
누가 무슨 말을 했는지 구분하나요?
아니요. 전사본에는 화자 구분이 없어서, 회의 중 누군가 그 사람 이름을 말했을 때만 액션 아이템에 담당자가 붙습니다. LLM에는 추측하지 말라고 지시합니다.
이 템플릿의 단계별 가이드가 있나요?
네. 레시피에서 코드를 따라가며 설명하고, README에서 설정, 환경 변수, 배포를 다루며, 배치 전사 API 레퍼런스에서 Cartesia 쪽을 설명합니다.
쿡북 더 보기
오늘 시작하세요
전문가와 상담하세요.
팀원과 연결해 Cartesia가 세계적 수준의 음성 경험을 만드는 데 어떻게 도움이 되는지 알아보세요.
개발을 시작하세요.
API로 모델을 사용하고 몇 분 만에 음성 에이전트를 프로덕션에 배포하세요.

