Use this file to discover all available pages before exploring further.
타입캐스트 API를 위한 공식 C# 라이브러리입니다. AI 기반 음성을 사용하여 텍스트를 생동감 있는 음성으로 변환하세요..NET Standard 2.0+, .NET 6+, Unity(NuGetForUnity를 통해), Blazor 애플리케이션을 지원합니다. 동기 대안과 함께 완전한 async/await를 지원합니다.
using Typecast;using Typecast.Models;// 클라이언트 초기화using var client = new TypecastClient("YOUR_API_KEY");// 텍스트를 음성으로 변환var request = new TTSRequest( text: "안녕하세요! 저는 텍스트 음성 변환 에이전트입니다.", voiceId: "tc_672c5f5ce59fac2a48faeaee", model: TTSModel.SsfmV30);var response = await client.TextToSpeechAsync(request);// 오디오 파일 저장await response.SaveToFileAsync("output.wav");Console.WriteLine($"Audio saved! Duration: {response.Duration}s, Format: {response.Format}");
// 환경 변수 사용 (TYPECAST_API_KEY)using var client = new TypecastClient();// 또는 직접 전달using var client = new TypecastClient("your-api-key-here");// 또는 구성 객체 사용var config = new TypecastClientConfig{ ApiKey = "your-api-key-here", TimeoutSeconds = 60 // 선택 사항, 기본값: 30};using var client = new TypecastClient(config);
var request = new TTSRequest("모든 것이 잘 될 거예요.", voiceId, TTSModel.SsfmV30){ Language = LanguageCode.Korean, Prompt = new SmartPrompt( previousText: "방금 최고의 소식을 들었어요!", nextText: "축하할 수 있어서 너무 기다려져요!" )};var response = await client.TextToSpeechAsync(request);
프리셋 값으로 감정을 명시적으로 설정합니다:
var request = new TTSRequest("이 기능들을 보여드리게 되어 정말 기대됩니다!", voiceId, TTSModel.SsfmV30){ Language = LanguageCode.Korean, Prompt = new PresetPrompt( emotionPreset: EmotionPreset.Happy, emotionIntensity: 1.5 // 범위: 0.0 ~ 2.0 )};var response = await client.TextToSpeechAsync(request);
TextToSpeechWithTimestampsAsync()는 POST /v1/text-to-speech/with-timestamps를 래핑하며, 오디오와 함께 단어·문자 단위 정렬 데이터를 반환합니다. 가라오케 하이라이트, 자막 생성, 립싱크 애플리케이션에 활용할 수 있습니다.
using Typecast;using Typecast.Models;var client = new TypecastClient("YOUR_API_KEY");var result = await client.TextToSpeechWithTimestampsAsync(new TTSRequestWithTimestamps { VoiceId = "tc_60e5426de8b95f1d3000d7b5", Text = "Hello. How are you?", Model = "ssfm-v30"});await File.WriteAllBytesAsync("output.wav", result.AudioBytes());Console.WriteLine($"재생 시간: {result.AudioDuration:F3}초");foreach (var word in result.Words) { Console.WriteLine($" [{word.StartTime:F3}s – {word.EndTime:F3}s] {word.Text}");}
Granularity = Granularity.Word(기본값) 또는 Granularity = Granularity.Char를 설정해 정렬 단위를 제어합니다.
// 문자 단위 정렬 — 일본어·중국어에 필수var result = await client.TextToSpeechWithTimestampsAsync(new TTSRequestWithTimestamps { VoiceId = "tc_60e5426de8b95f1d3000d7b5", Text = "Hello. How are you?", Model = "ssfm-v30", Granularity = Granularity.Char});