<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:media="http://search.yahoo.com/mrss/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>카카오 &#8211; 투데이즈.kr</title>
	<atom:link href="https://2days.kr/tag/%ec%b9%b4%ec%b9%b4%ec%98%a4/feed/" rel="self" type="application/rss+xml" />
	<link>https://2days.kr</link>
	<description>투데이즈</description>
	<lastBuildDate>Sun, 16 Nov 2025 13:16:43 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://2days.kr/wp-content/uploads/2025/10/cropped-simbol-1-32x32.png</url>
	<title>카카오 &#8211; 투데이즈.kr</title>
	<link>https://2days.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>음성인식 (STT) 빨리 시작하기 &#8211; 카카오 OpenAPI</title>
		<link>https://2days.kr/07/10/16/7449/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Sat, 07 Oct 2023 07:59:39 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[OpenAI]]></category>
		<category><![CDATA[SST]]></category>
		<category><![CDATA[음성인식]]></category>
		<category><![CDATA[카카오]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=7449</guid>

					<description><![CDATA[카카오에서는 음성인식(STT, Speech-To-Text)을 무료로 제공하고 있습니다.]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p>카카오에서는 음성인식(STT, Speech-To-Text)을 무료로 제공하고 있습니다.</p>
<p><img post-id="7449" fifu-featured="1" decoding="async" src="https://blog.kakaocdn.net/dn/M9zwE/btqCjQA7cf9/ORiOYpD5QGHb09aUgI9gIK/img.jpg" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fk.kakaocdn.net%2Fdn%2FKa424%2FbtqCkPIefZo%2FU2QI8BxcK5OaQOfUkqreJk%2Fimg.jpg" data-origin-width="1298" data-origin-height="341" alt="음성인식 (STT) 빨리 시작하기 &#8211; 카카오 OpenAPI" title="음성인식 (STT) 빨리 시작하기 &#8211; 카카오 OpenAPI" title="음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 1"><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</p>
<h2>1일 무료 허용량</h2>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-origin-width="0" data-origin-height="0"><span data-url="https://blog.kakaocdn.net/dn/t8dNX/btqChFUuAYi/QzLjf1QjKOTJ7nBA5PhRwK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/t8dNX/btqChFUuAYi/QzLjf1QjKOTJ7nBA5PhRwK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft8dNX%2FbtqChFUuAYi%2FQzLjf1QjKOTJ7nBA5PhRwK%2Fimg.png" data-origin-width="0" data-origin-height="0" alt="img" title="음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 2"></span></figure>
<p>&nbsp;</p>
<p>하루에 음성인식은 20,000건 / 5,400초(90분)를 무료로 제공하고 있습니다.</p>
<p>빠르게 살펴보겠습니다.</p>
<p>&nbsp;</p>
<h2>&lt;&lt; 순서 &gt;&gt;</h2>
<table border="1">
<tbody>
<tr>
<td>Step 1)</td>
<td>사전준비</p>
<p>&#8211; 음성 인식 사용 여부 체크</p>
<p>&#8211; rest api key 찾기</td>
</tr>
<tr>
<td>Step 2)</td>
<td>구현</td>
</tr>
</tbody>
</table>
<h2>Step 1) 사전 준비</h2>
<h3>1-1) 음성 사용 On</h3>
<p>&#8211; 내 애플리케이션 &gt; 설정 &gt; 음성 &gt; [ON] 으로 설정 변경</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-origin-width="962" data-origin-height="766"><span data-url="https://blog.kakaocdn.net/dn/p4TWL/btqCoQUbjen/vQGhHcSnF0JLrL1gh0Gg1k/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/p4TWL/btqCoQUbjen/vQGhHcSnF0JLrL1gh0Gg1k/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fk.kakaocdn.net%2Fdn%2FcePuSr%2FbtqCjRzytuj%2FcepgxI4tstPt0YDBU5QoBK%2Fimg.png" width="600" data-origin-width="962" data-origin-height="766" alt="img" title="음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 3"></span></figure>
<p>&nbsp;</p>
<h3>1-2) REST API 키 확인</h3>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-origin-width="1289" data-origin-height="734"><span data-url="https://blog.kakaocdn.net/dn/4MQGG/btqClyfFqtA/oJPKTdizB4LnODoqjuxk4k/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/4MQGG/btqClyfFqtA/oJPKTdizB4LnODoqjuxk4k/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fk.kakaocdn.net%2Fdn%2Fdsp99T%2FbtqCgorK5gT%2FceUxecXNvUkjk4xpJTacI1%2Fimg.png" width="600" data-origin-width="1289" data-origin-height="734" alt="img" title="음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 4"></span></figure>
<p>&nbsp;</p>
<h2>Step 2) 구현 (Quick Start)</h2>
<p>&nbsp;</p>
<h3>ㅁ 음성 파일 준비</h3>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-origin-width="0" data-origin-height="0"><span data-url="https://blog.kakaocdn.net/dn/bij95y/btqCinsDGmU/4fLXWQEbpY09rN3KjYXWN1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bij95y/btqCinsDGmU/4fLXWQEbpY09rN3KjYXWN1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbij95y%2FbtqCinsDGmU%2F4fLXWQEbpY09rN3KjYXWN1%2Fimg.png" data-origin-width="0" data-origin-height="0" alt="img" title="음성인식 (STT) 빨리 시작하기 - 카카오 OpenAPI 5"></span></figure>
<p>&nbsp;</p>
<p>용어정리<br />
&#8211; <b>sample rate</b> : 현실 세계의 아날로그 소리를 잘게 쪼갠 비율(속도). 잘게 쪼개진 하나를 샘플이라 부른다.<br />
== 1초당 추출되는 샘플 개수 ex:) 44100 Hz &#8211; 1초당 44100개의 샘플<br />
&#8211; <b>channel</b> : 스피커 수와 연관 있다.<br />
&#8211; <b>bits per sample</b> : 하나의 샘플을 표현하기 위해 사용되는 bit 수.<br />
&#8211; <b>bit rate</b> : 1초당 비트 전송 수. (sample rate * channel * bits per sample)<br />
&#8211; <b>RAW PCM 포맷</b> :  PCM(Pulse code modulation)로 표현한 오디오 데이터를 압축하지 않은 RAW 형태(wav 등)</p>
<p><a href="https://developers.kakao.com/samples/downloadHeyKakaoAudio" target="_blank" rel="noopener">카카오톡 샘플 오디오 파일 다운로드하기</a> (&#8220;헤이 카카오&#8221;라고 녹음 되어 있습니다)</p>
<p>&nbsp;</p>
<p>&#8211; 해당 형식에 맞춰 오디오 파일을 준비합니다.</p>
<h3>ㅁ 소스코드</h3>
<pre id="code_1582932624291" class="python" data-ke-language="python" data-ke-type="codeblock"><code class="hljs"><span class="hljs-keyword">import</span> requests
<span class="hljs-keyword">import</span> json
kakao_speech_url = <span class="hljs-string">"https://kakaoi-newtone-openapi.kakao.com/v1/recognize"</span>

rest_api_key = <span class="hljs-string">'&lt;YOUR REST API KEY&gt;'</span>

headers = {
    <span class="hljs-string">"Content-Type"</span>: <span class="hljs-string">"application/octet-stream"</span>,
    <span class="hljs-string">"X-DSS-Service"</span>: <span class="hljs-string">"DICTATION"</span>,
    <span class="hljs-string">"Authorization"</span>: <span class="hljs-string">"KakaoAK "</span> + rest_api_key,
}

<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">'heykakao.wav'</span>, <span class="hljs-string">'rb'</span>) <span class="hljs-keyword">as</span> fp:
    audio = fp.read()

res = requests.post(kakao_speech_url, headers=headers, data=audio)</code></pre>
<h3>ㅁ 결과</h3>
<p>이런 재밌는 결과가 나왔네요~!</p>
<pre id="code_1582934881506" class="python" data-ke-language="python" data-ke-type="codeblock"><code class="hljs"><span class="hljs-built_in">print</span>(res.text)
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2</span>
<span class="hljs-comment"># Content-Type: application/json; charset=UTF-8</span>
<span class="hljs-comment"># </span>
<span class="hljs-comment"># {"type":"beginPointDetection","value":"BPD"}</span>
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2</span>
<span class="hljs-comment"># Content-Type: application/json; charset=UTF-8</span>
<span class="hljs-comment"># </span>
<span class="hljs-comment"># {"type":"partialResult","value":"he"}</span>
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2</span>
<span class="hljs-comment"># Content-Type: application/json; charset=UTF-8</span>
<span class="hljs-comment"># </span>
<span class="hljs-comment"># {"type":"partialResult","value":"헤이 카카오"}</span>
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2</span>
<span class="hljs-comment"># Content-Type: application/json; charset=UTF-8</span>
<span class="hljs-comment"># </span>
<span class="hljs-comment"># {"type":"endPointDetection","value":"EPD"}</span>
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2</span>
<span class="hljs-comment"># Content-Type: application/json; charset=UTF-8</span>
<span class="hljs-comment"># Speech-Length: 2</span>
<span class="hljs-comment"># </span>
<span class="hljs-comment"># {"type":"finalResult","value":"헤이 카카오","nBest":[{"value":"헤이 카카오","score":88},{"value":"헤이 카카오야","score":0}]}</span>
<span class="hljs-comment"># ------newtonemQRqgAYxWY2ZhLN2--</span>

<span class="hljs-comment"># beginPointDetection # 사용자가 말하기 시작하는 것으로 판단되었을 때</span>
<span class="hljs-comment"># partialResult       # 사용자가 말을 끝내기 전에 음성의 중간 인식 결과가 나왔을 때로, value에 중간 결과가 담김. 여러 번 발생할 수 있음</span>
<span class="hljs-comment"># endPointDetection   # 사용자가 말하는 것을 끝마친 것으로 판단되었을 때</span>
<span class="hljs-comment"># finalResult         # 사용자가 말한 음성의 최종 인식 결과가 나왔을 때로, value에 최종 인식 결과가 담김</span>
<span class="hljs-comment"># errorCalled         # 음성 인식이 실패 했을 때로, value에 에러 메시지가 담김</span>
</code></pre>
<p>&nbsp;</p>
<p><b>(참고) finalResult 를 추출하는 방법</b></p>
<pre id="code_1590497635970" class="python" data-ke-language="python" data-ke-type="codeblock"><code class="hljs">result_json_string = res.text[res.text.index(<span class="hljs-string">'{"type":"finalResult"'</span>):res.text.rindex(<span class="hljs-string">'}'</span>)+<span class="hljs-number">1</span>]
result = json.loads(result_json_string)
<span class="hljs-built_in">print</span>(result)
<span class="hljs-built_in">print</span>(result[<span class="hljs-string">'value'</span>])</code></pre>
<!-- CONTENT END 1 -->
]]></content:encoded>
					
		
		
		<media:content url="https://blog.kakaocdn.net/dn/M9zwE/btqCjQA7cf9/ORiOYpD5QGHb09aUgI9gIK/img.jpg" medium="image"></media:content>
            	</item>
	</channel>
</rss>
