가이드

Google 스프레드시트 읽어 주기: 모든 행을 MP3로

스프레드시트는 상품명, 단어, 공지, 게임이나 강좌의 대사처럼 짧은 텍스트를 많이 모아 두기 좋은 곳입니다. Google 스프레드시트는 스스로 읽어 주지 못하지만, 모든 스프레드시트에 들어 있는 Apps Script로 음성 합성 API를 호출하고 오디오를 Google 드라이브에 저장할 수 있습니다.

이 가이드는 SuperClonica 음성 합성 API로 선택한 행을 읽고, MP3를 저장하고, 텍스트 옆에 링크를 쓰는 짧은 스크립트를 보여 줍니다.

필요한 것

Google 계정과 SuperClonica API 키입니다. Google이나 GitHub로 SuperClonica에 로그인하고 작업 공간의 음성 합성 API 섹션에서 키를 만드세요. 무료 요금제는 하루 1분의 오디오로, 몇 행을 시험하기에 충분합니다.

  • A열에는 텍스트, B열에는 스크립트가 오디오 파일 링크를 씁니다.
  • 시트에서 확장 프로그램 → Apps Script를 엽니다.
  • 프로젝트 설정 → 스크립트 속성에 SUPERCLONICA_KEY로 키를 추가해 코드에 키가 남지 않게 합니다.

스크립트

이 함수를 Apps Script 편집기에 붙여 넣고 저장하세요. 선택한 행의 텍스트를 API로 보내고, MP3를 드라이브에 저장하고, 파일 링크를 B열에 넣습니다:

function voiceRow() { const sheet = SpreadsheetApp.getActiveSheet(); const row = sheet.getActiveCell().getRow(); const text = sheet.getRange(row, 1).getValue(); const key = PropertiesService.getScriptProperties().getProperty("SUPERCLONICA_KEY"); const answer = UrlFetchApp.fetch("https://superclonica.com/api/v1/speech", { method: "post", contentType: "application/json", headers: { Authorization: "Bearer " + key, "Idempotency-Key": "row-" + row }, payload: JSON.stringify({ text: text, voice: "F1", language: "ko", format: "mp3" }), muteHttpExceptions: true }); if (answer.getResponseCode() !== 200) throw new Error(answer.getContentText()); const file = DriveApp.createFile(answer.getBlob().setName("row-" + row + ".mp3")); sheet.getRange(row, 2).setValue(file.getUrl()); }

먼저 편집기에서 한 번 실행해 시트, 드라이브, 외부 요청에 대한 접근을 허용하세요. 그 뒤에는 행을 선택하고 voiceRow를 실행하면 됩니다. Idempotency-Key 덕분에 같은 행을 다시 실행해도 같은 오디오를 기다릴 뿐 두 번 읽지 않습니다.

여러 행을 한꺼번에

열 전체를 읽으려면 행을 반복하면서 이미 링크가 있는 행은 건너뛰세요. Apps Script 실행에는 시간 제한이 있으니 한 번에 수십 행씩 처리하고 나머지는 다시 실행하세요. API가 429를 돌려주면 요금제의 10분 창을 다 쓴 것이며, Retry-After 헤더가 몇 초 뒤에 이어 갈지 알려 줍니다. 음성은 SuperClonica 카탈로그에서 고르세요. 유료 요금제에서는 음성 페이지의 "API로 사용"에 표시된 ID로 카탈로그의 모든 음성을 쓸 수 있습니다.

비용과 개인정보

무료 요금제는 하루 1분의 오디오, 월 5달러 "스타트"는 10분마다 3분이며 쉬지 않고 쓰면 월 최대 216시간입니다. API를 쓰면 텍스트는 SuperClonica 서버로, 오디오는 Google 드라이브로 갑니다. 컴퓨터 밖으로 나가면 안 되는 텍스트는 무료 SuperClonica 엔진을 로컬에서 실행하세요.