You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
10 KiB
140 lines
10 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "b73fe10ec6b580fba2affb6f6e0a5c4d",
|
|
"translation_date": "2025-08-25T00:07:26+00:00",
|
|
"source_file": "6-consumer/lessons/3-spoken-feedback/README.md",
|
|
"language_code": "ko"
|
|
}
|
|
-->
|
|
# 타이머 설정 및 음성 피드백 제공
|
|
|
|

|
|
|
|
> 스케치노트: [Nitya Narasimhan](https://github.com/nitya). 이미지를 클릭하면 더 큰 버전을 볼 수 있습니다.
|
|
|
|
## 강의 전 퀴즈
|
|
|
|
[강의 전 퀴즈](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/45)
|
|
|
|
## 소개
|
|
|
|
스마트 어시스턴트는 단방향 통신 장치가 아닙니다. 사용자가 말을 하면, 기기가 응답합니다:
|
|
|
|
"알렉사, 3분 타이머 설정해줘."
|
|
|
|
"알겠습니다. 3분 타이머를 설정했습니다."
|
|
|
|
지난 두 강의에서는 음성을 텍스트로 변환하고, 그 텍스트에서 타이머 설정 요청을 추출하는 방법을 배웠습니다. 이번 강의에서는 IoT 기기에서 타이머를 설정하고, 사용자가 요청한 타이머를 확인하는 음성으로 응답하며, 타이머가 완료되었을 때 알림을 제공하는 방법을 배울 것입니다.
|
|
|
|
이번 강의에서 다룰 내용은 다음과 같습니다:
|
|
|
|
* [텍스트를 음성으로 변환하기](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
* [타이머 설정하기](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
* [텍스트를 음성으로 변환하기](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
|
|
## 텍스트를 음성으로 변환하기
|
|
|
|
텍스트를 음성으로 변환하는 과정은 이름 그대로 텍스트를 음성으로 변환하는 과정입니다. 기본 원리는 텍스트의 단어를 구성하는 소리(음소)로 나누고, 이 소리에 대한 오디오를 미리 녹음된 파일이나 AI 모델을 사용해 생성하여 결합하는 것입니다.
|
|
|
|

|
|
|
|
텍스트 음성 변환 시스템은 일반적으로 세 가지 단계를 거칩니다:
|
|
|
|
* 텍스트 분석
|
|
* 언어 분석
|
|
* 파형 생성
|
|
|
|
### 텍스트 분석
|
|
|
|
텍스트 분석은 제공된 텍스트를 받아 음성을 생성할 수 있는 단어로 변환하는 과정입니다. 예를 들어, "Hello world"는 텍스트 분석이 필요하지 않습니다. 두 단어를 바로 음성으로 변환할 수 있기 때문입니다. 하지만 "1234"는 상황에 따라 "천이백삼십사" 또는 "일, 이, 삼, 사"로 변환해야 할 수 있습니다. 예를 들어, "나는 1234개의 사과를 가지고 있다"는 "천이백삼십사"로 변환되지만, "아이들이 1234를 세었다"는 "일, 이, 삼, 사"로 변환됩니다.
|
|
|
|
단어의 생성은 언어뿐만 아니라 해당 언어의 지역적 특성에 따라 달라질 수 있습니다. 예를 들어, 미국 영어에서는 120을 "One hundred twenty"라고 하지만, 영국 영어에서는 "One hundred and twenty"라고 하며, "and"를 추가합니다.
|
|
|
|
✅ 텍스트 분석이 필요한 다른 예로는 "in"이 인치의 약어로 사용되거나, "st"가 성인(Saint) 또는 거리(Street)의 약어로 사용되는 경우가 있습니다. 여러분의 언어에서 문맥 없이는 모호한 단어의 예를 생각해 보세요.
|
|
|
|
단어가 정의되면, 언어 분석 단계로 넘어갑니다.
|
|
|
|
### 언어 분석
|
|
|
|
언어 분석은 단어를 음소로 나누는 과정입니다. 음소는 단순히 사용된 글자뿐만 아니라 단어 내 다른 글자에 따라 달라질 수 있습니다. 예를 들어, 영어에서 'car'와 'care'의 'a' 소리는 다릅니다. 영어에는 알파벳 26자에 대해 44개의 음소가 있으며, 일부는 서로 다른 글자가 공유하기도 합니다. 예를 들어, 'circle'과 'serpent'의 시작 소리는 동일한 음소를 사용합니다.
|
|
|
|
✅ 조사해 보세요: 여러분의 언어에는 어떤 음소가 있는지 알아보세요.
|
|
|
|
음소로 변환된 단어는 억양, 톤, 길이를 조정하기 위한 추가 데이터가 필요합니다. 예를 들어, 영어에서는 문장을 질문으로 바꾸기 위해 마지막 단어의 음조를 높이는 방식으로 억양을 조정합니다.
|
|
|
|
예를 들어, "You have an apple"은 단순히 사과를 가지고 있다는 진술입니다. 하지만 마지막 단어 'apple'의 음조를 높이면 "You have an apple?"이라는 질문으로 바뀝니다. 언어 분석은 문장 끝의 물음표를 사용해 음조를 높이도록 결정합니다.
|
|
|
|
음소가 생성되면, 파형 생성 단계로 넘어가 오디오 출력을 생성합니다.
|
|
|
|
### 파형 생성
|
|
|
|
초기의 전자 텍스트 음성 변환 시스템은 각 음소에 대해 단일 오디오 녹음을 사용했기 때문에 매우 단조롭고 로봇 같은 소리를 냈습니다. 언어 분석에서 생성된 음소를 데이터베이스에서 불러와 결합하여 오디오를 생성했습니다.
|
|
|
|
✅ 조사해 보세요: 초기 음성 합성 시스템의 오디오 녹음을 찾아보세요. 스마트 어시스턴트에서 사용하는 현대 음성 합성과 비교해 보세요.
|
|
|
|
현대의 파형 생성은 딥러닝(뇌의 뉴런과 유사하게 작동하는 매우 큰 신경망)을 사용하는 머신러닝(ML) 모델을 활용하여 더 자연스러운 소리를 생성합니다. 이 소리는 인간의 목소리와 구별하기 어려울 정도로 자연스럽습니다.
|
|
|
|
> 💁 이러한 ML 모델은 전이 학습을 통해 실제 사람의 목소리처럼 들리도록 재훈련될 수 있습니다. 이는 은행에서 보안 시스템으로 음성을 사용하는 것이 더 이상 안전하지 않음을 의미합니다. 몇 분간의 음성 녹음만 있으면 누구나 여러분을 흉내낼 수 있기 때문입니다.
|
|
|
|
이러한 대규모 ML 모델은 세 단계를 결합하여 종단 간 음성 합성기를 훈련시키고 있습니다.
|
|
|
|
## 타이머 설정하기
|
|
|
|
타이머를 설정하려면, IoT 기기가 서버리스 코드를 사용해 생성한 REST 엔드포인트를 호출하고, 반환된 초 단위 시간을 사용해 타이머를 설정해야 합니다.
|
|
|
|
### 작업 - 서버리스 함수 호출하여 타이머 시간 가져오기
|
|
|
|
IoT 기기에서 REST 엔드포인트를 호출하고 필요한 시간에 대해 타이머를 설정하는 방법에 대한 가이드를 따르세요:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-set-timer.md)
|
|
* [단일 보드 컴퓨터 - Raspberry Pi/가상 IoT 기기](single-board-computer-set-timer.md)
|
|
|
|
## 텍스트를 음성으로 변환하기
|
|
|
|
이전에 음성을 텍스트로 변환하는 데 사용했던 동일한 음성 서비스를 사용해 텍스트를 음성으로 변환할 수 있습니다. 변환된 음성은 IoT 기기의 스피커를 통해 재생할 수 있습니다. 변환할 텍스트와 함께 필요한 오디오 유형(예: 샘플 속도)을 음성 서비스에 전송하면, 오디오가 이진 데이터로 반환됩니다.
|
|
|
|
이 요청을 보낼 때는 *Speech Synthesis Markup Language* (SSML)를 사용합니다. SSML은 음성 합성 애플리케이션을 위한 XML 기반 마크업 언어로, 변환할 텍스트뿐만 아니라 텍스트의 언어, 사용할 음성, 속도, 볼륨, 음조 등을 정의할 수 있습니다.
|
|
|
|
예를 들어, 아래 SSML은 "Your 3 minute 5 second time has been set"이라는 텍스트를 영국 영어 음성 `en-GB-MiaNeural`로 변환하도록 요청합니다.
|
|
|
|
```xml
|
|
<speak version='1.0' xml:lang='en-GB'>
|
|
<voice xml:lang='en-GB' name='en-GB-MiaNeural'>
|
|
Your 3 minute 5 second time has been set
|
|
</voice>
|
|
</speak>
|
|
```
|
|
|
|
> 💁 대부분의 텍스트 음성 변환 시스템은 다양한 언어에 대해 여러 음성을 제공합니다. 예를 들어, 영국 영어 음성은 영국식 억양을, 뉴질랜드 영어 음성은 뉴질랜드 억양을 가질 수 있습니다.
|
|
|
|
### 작업 - 텍스트를 음성으로 변환하기
|
|
|
|
IoT 기기를 사용해 텍스트를 음성으로 변환하는 방법에 대한 관련 가이드를 따라 작업하세요:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-text-to-speech.md)
|
|
* [단일 보드 컴퓨터 - Raspberry Pi](pi-text-to-speech.md)
|
|
* [단일 보드 컴퓨터 - 가상 기기](virtual-device-text-to-speech.md)
|
|
|
|
---
|
|
|
|
## 🚀 도전 과제
|
|
|
|
SSML은 특정 단어에 강조를 추가하거나, 일시 정지를 삽입하거나, 음조를 변경하는 등 단어가 발음되는 방식을 변경할 수 있는 방법을 제공합니다. IoT 기기에서 다양한 SSML을 전송하고 결과를 비교하며 이를 시도해 보세요. SSML에 대한 자세한 내용은 [World Wide Web Consortium의 Speech Synthesis Markup Language (SSML) Version 1.1 사양](https://www.w3.org/TR/speech-synthesis11/)에서 확인할 수 있습니다.
|
|
|
|
## 강의 후 퀴즈
|
|
|
|
[강의 후 퀴즈](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/46)
|
|
|
|
## 복습 및 자기 학습
|
|
|
|
* [위키백과의 음성 합성 페이지](https://wikipedia.org/wiki/Speech_synthesis)에서 음성 합성에 대해 더 알아보세요.
|
|
* [BBC 뉴스의 '가짜 목소리로 사이버 범죄자들이 돈을 훔치는 방법' 기사](https://www.bbc.com/news/technology-48908736)에서 음성 합성을 이용한 범죄 사례를 읽어보세요.
|
|
* [Vice의 '이 틱톡 소송은 AI가 성우들에게 어떤 피해를 주고 있는지 보여준다' 기사](https://www.vice.com/en/article/z3xqwj/this-tiktok-lawsuit-is-highlighting-how-ai-is-screwing-over-voice-actors)에서 음성 합성으로 인해 성우들이 겪는 위험에 대해 알아보세요.
|
|
|
|
## 과제
|
|
|
|
[타이머 취소하기](assignment.md)
|
|
|
|
**면책 조항**:
|
|
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서를 해당 언어로 작성된 상태에서 권위 있는 자료로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. |