가이드

PowerShell TTS: 자연스러운 목소리로

PowerShell은 아무것도 설치하지 않아도 말할 수 있습니다. Windows에는 System.Speech 합성기가 있어, 몇 줄이면 백업이 끝났다거나 빌드가 실패했다고 스크립트가 알려 줍니다. 하지만 그 목소리는 Windows에 몇 년째 있는 로봇 같은 목소리이고, 컴퓨터마다 다릅니다.

무료 SuperClonica 엔진은 자연스러운 뉴럴 목소리를 내 컴퓨터나 서버에서 돌리며, PowerShell은 Invoke-RestMethod 한 번으로 호출합니다. 이 가이드에서는 두 방법과 각각 언제 쓰는지 소개합니다.

PowerShell에서 말하는 두 가지 방법

간단한 알림에는 System.Speech로 충분하지만, 사람이 듣는 것에는 자연스러운 목소리를 쓰세요.

  • System.Speech: Windows에 내장. Add-Type -AssemblyName System.Speech로 불러와 SpeechSynthesizer 클래스를 쓰세요.
  • 오프라인으로 돌아가고 추가 설치가 필요 없지만, 목소리가 로봇 같고 설치된 Windows 음성에 따라 달라집니다.
  • SuperClonica: 자연스러운 목소리, 캐릭터 목소리, 학습한 내 목소리를 쓰는 로컬 HTTP 서버.
  • 31개 언어를 말하며, 중국어는 아직 지원하지 않습니다.

목소리를 무료로 들어 보기

아무 목소리 페이지에서 스크립트가 말할 문장을 30~100자로 입력하고 언어를 고른 뒤 생성 버튼을 누르세요. 몇 초 만에 차이를 들을 수 있습니다. 계정은 필요 없습니다.

로컬 SuperClonica 서버 호출하기

Windows PowerShell 5.1은 문자열 본문을 잘못된 인코딩으로 보내므로 위처럼 UTF-8 바이트를 넘기세요. 또 BOM 없는 .ps1을 ANSI로 읽으니 한글이 든 스크립트는 BOM 있는 UTF-8로 저장하세요.

  • 서버를 한 번 실행하세요. Windows에서는 Docker Desktop으로: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu.
  • PowerShell에서 문장 읽히기: $json = @{text='야간 백업이 끝났습니다'; voice='F1'; lang='ko'} | ConvertTo-Json; Invoke-RestMethod -Method Post -Uri http://localhost:8000/synthesize -ContentType 'application/json' -Body ([Text.Encoding]::UTF8.GetBytes($json)) -OutFile hello.wav.
  • 파일은 16비트 모노 WAV로, 어떤 플레이어나 영상 편집기, 스크립트에서도 쓸 수 있습니다.
  • 다른 컴퓨터에서 접근할 수 있다면 서버에 SUPERCLONICA_API_KEY를 설정하고 -Headers @{Authorization="Bearer 내-키"}를 더하세요.

말하는 스크립트

(New-Object Media.SoundPlayer "hello.wav").PlaySync()로 WAV를 바로 재생하거나 안내를 저장해 두세요. 예약 작업으로 아침 요약을 읽히고, CI 작업으로 빌드 실패를 사무실 스피커로 알리고, CSV를 반복해 수백 개의 안내를 한 번에 만들 수 있습니다. 짧은 문장은 일반 CPU에서 1초보다 훨씬 짧게 걸립니다.

System.Speech로 충분할 때

목소리가 즐길 대상이 아니라 알아듣기만 하면 되는 경우라면 System.Speech로 충분합니다. 자리에 있을 때의 빠른 알림, 접근성 테스트, Docker가 없는 컴퓨터. 영상, 안내 음성, 방송, 제품처럼 오디오가 내 책상 밖으로 나가거나, 같은 목소리가 모든 컴퓨터에서 똑같이 들려야 할 때는 SuperClonica를 쓰세요.