<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	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>GPT 보관 - 하우인포-IT·테크</title>
	<atom:link href="https://howinfo.kr/tag/gpt/feed/" rel="self" type="application/rss+xml" />
	<link>https://howinfo.kr/tag/gpt/</link>
	<description>IT·AI 자동화 &#38; 인프라 전문 블로그 (하우인포)</description>
	<lastBuildDate>Tue, 10 Feb 2026 13:11:18 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://howinfo.kr/wp-content/uploads/2026/02/cropped-ChatGPT-Image-2026년-2월-12일-오후-05_39_40-32x32.png</url>
	<title>GPT 보관 - 하우인포-IT·테크</title>
	<link>https://howinfo.kr/tag/gpt/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>터미널에서 바로 쓰는 한국어 음성 비서 만들기: GPT + Edge TTS (실무용)</title>
		<link>https://howinfo.kr/%ed%84%b0%eb%af%b8%eb%84%90%ec%97%90%ec%84%9c-%eb%b0%94%eb%a1%9c-%ec%93%b0%eb%8a%94-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%9d%8c%ec%84%b1-%eb%b9%84%ec%84%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0-gpt-edge-tts/</link>
					<comments>https://howinfo.kr/%ed%84%b0%eb%af%b8%eb%84%90%ec%97%90%ec%84%9c-%eb%b0%94%eb%a1%9c-%ec%93%b0%eb%8a%94-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%9d%8c%ec%84%b1-%eb%b9%84%ec%84%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0-gpt-edge-tts/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 10 Feb 2026 11:58:53 +0000</pubDate>
				<category><![CDATA[개발·코딩]]></category>
		<category><![CDATA[AI워크플로우]]></category>
		<category><![CDATA[EdgeTTS]]></category>
		<category><![CDATA[GPT]]></category>
		<category><![CDATA[mpg123]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[음성비서]]></category>
		<category><![CDATA[자동화]]></category>
		<category><![CDATA[터미널도구]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1565</guid>

					<description><![CDATA[<p>회의 준비하다가 갑자기 문득 이런 순간이 있어요. 그래서 저는 아주 단순한 목표로 시작했어요. 터미널에 질문을 치면 GPT가 답하고, 그 답을...</p>
<p>게시물 <a href="https://howinfo.kr/%ed%84%b0%eb%af%b8%eb%84%90%ec%97%90%ec%84%9c-%eb%b0%94%eb%a1%9c-%ec%93%b0%eb%8a%94-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%9d%8c%ec%84%b1-%eb%b9%84%ec%84%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0-gpt-edge-tts/">터미널에서 바로 쓰는 한국어 음성 비서 만들기: GPT + Edge TTS (실무용)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<p>회의 준비하다가 갑자기 문득 이런 순간이 있어요.</p>



<ul class="wp-block-list">
<li>“이거 한 줄만 물어보면 되는데… 다시 브라우저 열기 귀찮다”</li>



<li>“답변은 길어질 것 같은데, 화면 보는 대신 그냥 <strong>읽어줬으면</strong> 좋겠다”</li>



<li>“업무 중에 손은 키보드/마우스에 묶여 있는데, 짧게 대화하듯 확인하고 싶다”</li>
</ul>



<p>그래서 저는 아주 단순한 목표로 시작했어요.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>터미널에 질문을 치면 GPT가 답하고, 그 답을 바로 한국어 음성으로 읽어주는 작은 비서</strong></p>
</blockquote>



<p>이번 글에서는 제가 실제 소스를 기준으로, 설치부터 운영 팁까지 한 번에 정리해볼게요.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1) 이 스크립트가 하는 일 (한 줄 요약)</h2>



<p><strong>나&gt; 질문 입력</strong> → <strong>GPT 답변 생성</strong> → <strong>Edge TTS로 mp3 생성</strong> → <strong>mpg123로 즉시 재생</strong></p>



<p>핵심은 “대화가 끊기지 않게” 만드는 거예요.<br>기존 버전에서는 답변이 길어지면 500자에서 <strong>뚝 잘려서</strong> 읽히는 문제가 있었는데, 이 소스에서는 <strong>문장 단위로 나눠서 끝까지 읽는 방식</strong>으로 개선했습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2) 왜 이소스가 실무에 더 편하냐면</h2>



<p>제가 실제로 써보니, 딱 두 가지가 중요했어요.</p>



<h3 class="wp-block-heading">✅ (1) 답변이 길어져도 끝까지 읽어줌</h3>



<p>업무 질문은 생각보다 길게 답이 나오는 경우가 많아요.<br>“요약 + 근거 + 단계별 명령어” 같은 답변이 나오면 500자 제한으로 끊기는 순간 흐름이 무너집니다.</p>



<p>답변을 <strong>문장 단위로 쪼개서</strong> 자연스럽게 이어 읽어요.</p>



<h3 class="wp-block-heading">✅ (2) asyncio.run() 반복 호출 제거</h3>



<p>환경에 따라(특히 이벤트 루프가 이미 돌아가는 환경) <code>asyncio.run()</code>을 반복하면 충돌이 날 때가 있어요.<br>이 소스에서는 이벤트 루프를 한 번만 만들고 계속 재사용하는 방식이라 안정성이 좋아집니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3) 준비물 (Ubuntu/Orange Pi 기준)</h2>



<ul class="wp-block-list">
<li>Python 3.9+ (대부분 OK)</li>



<li>패키지: <code>openai</code>, <code>edge-tts</code></li>



<li>재생기: <code>mpg123</code></li>



<li>그리고 가장 중요한 <strong>OpenAI API Key</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4) 설치 (실제로 이대로 하면 됩니다)</h2>



<h3 class="wp-block-heading">4-1) mpg123 설치</h3>



<pre class="wp-block-code"><code>sudo apt-get update
sudo apt-get install -y mpg123
</code></pre>



<h3 class="wp-block-heading">4-2) 파이썬 라이브러리 설치</h3>



<pre class="wp-block-code"><code>pip install -U openai edge-tts
</code></pre>



<h3 class="wp-block-heading">4-3) API 키 설정</h3>



<pre class="wp-block-code"><code>export OPENAI_API_KEY="sk-여기에_키_입력"
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>실무 팁: 매번 export 치기 귀찮으면<br><code>~/.bashrc</code> 또는 <code>~/.profile</code>에 넣어두면 편합니다.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5) 실행 (가장 기본 세팅)</h2>



<pre class="wp-block-code"><code>python3 text_gpt_edge_tts_v4.py
</code></pre>



<p>실행하면 터미널에 이렇게 뜹니다.</p>



<ul class="wp-block-list">
<li><code>나&gt;</code> 프롬프트가 나오고,</li>



<li>입력하면 <code>GPT&gt;</code> 답변이 출력되고,</li>



<li>이어서 바로 음성으로 재생됩니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6) 자주 쓰는 튜닝 포인트 (환경변수로 조절)</h2>



<p>실무에서 “한 번 만들어두고 계속 쓰는 도구”가 되려면, 튜닝이 쉬워야 해요.<br>이 스크립트는 대부분 환경변수로 바꿀 수 있게 해놨습니다.</p>



<h3 class="wp-block-heading">✅ 모델 바꾸기</h3>



<pre class="wp-block-code"><code>export GPT_MODEL="gpt-4o-mini"
</code></pre>



<h3 class="wp-block-heading">✅ 목소리 바꾸기 (한국어)</h3>



<pre class="wp-block-code"><code>export TTS_VOICE="ko-KR-SunHiNeural"
</code></pre>



<h3 class="wp-block-heading">✅ 말하기 속도/볼륨</h3>



<pre class="wp-block-code"><code>export TTS_RATE="+10%"
export TTS_VOLUME="+0%"
</code></pre>



<h3 class="wp-block-heading">✅ “한 번에 읽는 길이” 조절 (청크 크기)</h3>



<pre class="wp-block-code"><code>export MAX_SPEAK_CHARS="450"
</code></pre>



<ul class="wp-block-list">
<li>너무 자주 끊기면 값을 올리고(500~700)</li>



<li>문장 끝이 어색하게 잘리면 조금 낮추는 게(350~500) 안정적이었습니다.</li>
</ul>



<h3 class="wp-block-heading">✅ TTS 모드 선택</h3>



<pre class="wp-block-code"><code>export TTS_MODE="chunk"   # 기본: 끝까지 읽기
# export TTS_MODE="clamp" # 기존처럼 잘라 읽기
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7) 운영하면서 “진짜 도움이 됐던” 사용 패턴</h2>



<p>제가 실제로 써보면서 효과 있었던 사용 패턴을 몇 개 공유할게요.</p>



<h3 class="wp-block-heading">(1) 짧은 업무 확인</h3>



<ul class="wp-block-list">
<li>“이 로그 메시지 의미가 뭐야?”</li>



<li>“nginx에서 502 나올 때 점검 순서 정리해줘”</li>



<li>“이 에러는 보통 어디서 터지지?”</li>
</ul>



<p>이런 것들은 화면으로 읽기보다 <strong>음성으로 들으면</strong> 손이 자유로워서 편합니다.</p>



<h3 class="wp-block-heading">(2) 문서 초안/메일 초안 만들기</h3>



<ul class="wp-block-list">
<li>“고객에게 보낼 공지 초안 부탁해”</li>



<li>“실무적인 체크리스트 형태로 정리해줘”</li>
</ul>



<p>이럴 때 답이 길어지는데 v4는 중간에 끊기지 않아서 좋았어요.</p>



<h3 class="wp-block-heading">(3) “내가 지금 뭘 해야 하지?” 정리용</h3>



<p>업무가 복잡해질수록, 오히려 이런 질문이 유용합니다.</p>



<ul class="wp-block-list">
<li>“지금 내가 해야 할 일을 5개로 줄여줘”</li>



<li>“우선순위를 정해줘(긴급/중요 기준)”</li>
</ul>



<p>음성으로 들으면 리듬이 생겨서 실행이 빨라져요.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8) 트러블슈팅 (운영하다 보면 꼭 만나는 것들)</h2>



<h3 class="wp-block-heading">✅ mpg123: command not found</h3>



<p>→ 설치 안 된 상태입니다.</p>



<pre class="wp-block-code"><code>sudo apt-get install -y mpg123
</code></pre>



<h3 class="wp-block-heading">✅ OPENAI_API_KEY 오류 / 401</h3>



<p>→ 키가 없거나 잘못된 값입니다.</p>



<pre class="wp-block-code"><code>echo $OPENAI_API_KEY
</code></pre>



<p>출력이 비어 있으면 export가 적용 안 된 거예요.</p>



<h3 class="wp-block-heading">✅ 음성은 생성되는데 소리가 안 난다</h3>



<p>이건 환경이 다양해서 원인이 여러 개인데, 경험상 체크 순서는 이렇습니다.</p>



<ol class="wp-block-list">
<li>서버/장비에서 실제 오디오 출력 장치가 맞는지</li>



<li><code>mpg123</code>가 소리를 낼 수 있는 상태인지 (권한/장치)</li>



<li>헤드리스 환경이면 기본 오디오 장치가 비정상일 수 있음</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9) 실무에서 꼭 챙길 보안 포인트</h2>



<p>이런 스크립트는 “내 PC에서만 쓰는 작은 도구”처럼 보여도, 실무에서는 습관이 중요해요.</p>



<ul class="wp-block-list">
<li><strong>API 키를 코드에 하드코딩하지 않기</strong><br>→ 환경변수로 관리하는 게 기본입니다.</li>



<li>가능하면 <code>.bashrc</code>에 넣되, 공유/백업 파일에 키가 올라가지 않도록 주의</li>



<li>회사 자산/업무망 장비에서 돌릴 때는 로그/히스토리 저장 여부도 고려</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">10) 다음 단계 아이디어 (여기서부터가 확장 포인트)</h2>



<p>여기까지는 “키보드 입력 기반 음성 비서”였고, 다음 단계는 이쪽이 재밌습니다.</p>



<ul class="wp-block-list">
<li><strong>마이크 입력(녹음) → Whisper(STT) → GPT → TTS</strong><br>완전한 음성 비서 형태로 확장 가능</li>



<li>답변을 읽는 동안 <strong>중간에 끊기(Stop)</strong> 기능 추가</li>



<li>질문/답변을 파일로 저장해서 <strong>업무 로그처럼 쌓기</strong></li>



<li>(저는 이걸 Note Station 자동 정리 파이프라인과 연결해서 “회의 음성 → STT → 요약 → 노트 자동 삽입”까지도 확장 중입니다)</li>
</ul>



<p>파이썬 소스코드 아래 </p>



<div class="wp-block-file"><a id="wp-block-file--media-cf4ca2c0-7b4a-41dd-aaf5-5f487dff2be3" href="https://howinfo.kr/wp-content/uploads/2026/02/gpt_edge_tts.zip">gpt_edge_tts</a><a href="https://howinfo.kr/wp-content/uploads/2026/02/gpt_edge_tts.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-cf4ca2c0-7b4a-41dd-aaf5-5f487dff2be3">다운로드</a></div>



<p>오렌지파이5에서 돌려봤는데 답변이 조금 늦습니다. 좀더 성능좋은 컴퓨터에서는 대화가 어느정도 되었습니다. </p>



<p>참고하세요. </p>
<p>게시물 <a href="https://howinfo.kr/%ed%84%b0%eb%af%b8%eb%84%90%ec%97%90%ec%84%9c-%eb%b0%94%eb%a1%9c-%ec%93%b0%eb%8a%94-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%9d%8c%ec%84%b1-%eb%b9%84%ec%84%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0-gpt-edge-tts/">터미널에서 바로 쓰는 한국어 음성 비서 만들기: GPT + Edge TTS (실무용)</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ed%84%b0%eb%af%b8%eb%84%90%ec%97%90%ec%84%9c-%eb%b0%94%eb%a1%9c-%ec%93%b0%eb%8a%94-%ed%95%9c%ea%b5%ad%ec%96%b4-%ec%9d%8c%ec%84%b1-%eb%b9%84%ec%84%9c-%eb%a7%8c%eb%93%a4%ea%b8%b0-gpt-edge-tts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
