녹음으로 만드는
회의록

브라우저에서 회의를 녹음하거나 녹음 파일을 올리세요. Cartesia의 ink-whisper 모델이 음성을 텍스트로 바꿉니다. 그다음 LLM이 제목, 요약, 결정 사항, 담당자가 붙은 액션 아이템을 씁니다.
Pricing sync라는 15초짜리 회의의 회의록. 세 문장 요약, 결정 사항 두 개, Priya와 Marcus가 담당자로 지정된 미완료 할 일 세 개가 있고, 옆에 Notes와 Transcript 탭, Copy as Markdown 버튼이 있습니다

스크린샷. 로컬에서 실행 중인 템플릿입니다.

모델
ink-whisper
언어
메뉴에 17개
라이선스
Apache-2.0
기술 스택
Next.js 16React 19AI SDKIndexedDBshadcn/ui
Cartesia 제품
Ink

하는 일

회의는 브라우저에 저장되므로 데이터베이스도 로그인도 필요 없습니다. 회의마다 Markdown으로 복사할 수 있습니다. 별도 페이지에서 모든 회의의 미완료 액션 아이템을 모아 봅니다.

직접 실행하기

  1. 설치

    Node 22.22 이상에서 아래 명령어를 실행하세요. pnpm도 쓸 수 있습니다. 아래 표를 보고 .env.local을 채우세요. 빠진 키가 있으면 페이지가 무엇인지 알려 줍니다.

    npx degit cartesia-ai/cookbook/examples/meeting-notes meeting-notes
    cd meeting-notes
    # add CARTESIA_API_KEY, LLM_MODEL and the matching LLM key
    cp .env.example .env.local
    npm install
    npm run dev
    

    환경 변수
    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
  2. 회의 녹음

    개발 서버가 출력한 로컬 URL을 열고 Start recording을 누릅니다. 몇 초 동안 말합니다. 그다음 Stop and write notes를 누릅니다. 오디오 파일을 쓰려면 녹음기 위의 업로드 탭으로 바꿉니다.

코딩 에이전트로 만들기

어디서 시작하고 무엇을 먼저 읽어야 하는지 코딩 에이전트에게 알려 주는 프롬프트입니다.

프롬프트

Claude CodeCursorCodex

Build a meeting notes app with Cartesia speech to text. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/meeting-notes 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://www.cartesia.ai/agent-quickstart.md to get one.

작동 방식

녹음기브라우저가 24kbps로 녹음하거나, 파일을 올린다
ink-whisperCartesia가 녹음 전체를 요청 한 번으로 텍스트로 바꾼다
회의록LLM이 요약, 결정 사항, 액션 아이템을 쓴다
IndexedDB전사본과 회의록만 저장, 오디오는 저장하지 않음

이렇게 만든 이유

전사본을 먼저 저장합니다

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로 모델을 사용하고 몇 분 만에 음성 에이전트를 프로덕션에 배포하세요.

Cartesia 사용해 보기