C# TTS , 음성합성 , 뉴톤톡 개발 REST api 400에러 질문합니다

        string text = "헤이 카카오"; // 음성합성할 문자값
        string url = "https://kakaoi-newtone-openapi.kakao.com/v1/synthesize"; // HOST 및 URL
        string rest_api_key = "REST API 키값"; // 내 어플리케이션 => 어플선택 => 기본정보의 앱 키 > REST Key 값 부여
        string VoiceName = "WOMAN_DIALOG_BRIGHT"; // attribute value(음성 선택)
        string FiePath = @"./" // 파일경로

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Headers.Add("Authorization", rest_api_key);
        request.ContentType = "application/xml";
        request.Method = "POST";

        byte[] byteDataParams = Encoding.UTF8.GetBytes("<speak><voice name='" + VoiceName + "'>" + text + "</voice></speak>");
        request.ContentLength = byteDataParams.Length;

        Stream st = request.GetRequestStream();
        st.Write(byteDataParams, 0, byteDataParams.Length);
        st.Close();

        HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // 에러 부분
        string status = response.StatusCode.ToString();
        using (Stream output = File.OpenWrite(FiePath))
        using (Stream input = response.GetResponseStream())
        {
            input.CopyTo(output);
        }

윈도움 폼에서 버튼 이벤트에 넣은 코드입니다.

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 이부분에서
원격 서버에서 (400) 잘못된 요청 오류를 반환했습니다. 라고 에러가 나옵니다

개발 가이드에서 xml 타입 오류일 때 http status code 400
이라는대

바꿔봐도 안되고 무엇이 잘못되었는지 모르겠어서 질문드립니다.
통계 => 실시간 에서는 403 : 1 이라고 나옵니다.

안녕하세요.

카카오 음성 기술에 관심가져 주셔서 감사합니다.

뉴톤톡 REST api는 xml 속성값들을 작은 따옴표로 감싸는 것을 허용하지 않습니다.
큰 따옴표로 감싸도록 변경해 주시면 될 것 같습니다.

참고로, 다른 에러 메시지들은 response body를 통해 확인하실 수 있습니다.

감사합니다.

stirng Data = “<!speak><!voice>그는 그렇게 말했습니다.<!/voice><!/speak>”
(느낌표는 댓글에서 사라져서 보여주기 위하여 추가한 내용입니다.)

예제와 동일하게 해도 똑같이 400에러가 뜹니다.
작은 따음표 문제는 아닌것 같습니다.

400 에러가 올 수 있는 경우는 여러 가지가 있습니다.
response body에 에러 메시지가 온 것이 있는지 확인해주시기 바랍니다.

혹시 '내 애플리케이션 > 설정 > 음성’에서 음성 서비스 사용을 활성화하셨나요?

죄송합니다.

음성합성(뉴톤톡) 클릭 링크를 타고 아래서 부터 봐서

음성 서비스 활성화는 음성인식 부분인줄 알았네요…

덕분에 정상적으로 작동됩니다 감사합니다 (__)

1개의 좋아요