[Session 03] 도전! 나도 아이돌(음성 분류)
도전! 나도 아이돌(음성 분류)
음성인식기술은 음향학적 신호를 낱말이나 문장으로 변환시키는 기술이다. 하지만 인공 지능 기술의 발전으로 다양한 억양, 감정, 발성까지 파악하여 음성을 인식할 수 있게 되었다. 더 나아가 노래를 인식하고 정확도를 구분하는 정도에까지 이르렀고, 작곡을 하는 수준에까지 나아갔으니 인공지능 기술의 발전은 놀라울 수밖에 없다. 본 세션에서는 인공 지능의 음성 분류 모델을 활용하여 나와 친구들이 부른 노래의 점수를 측정하여 심사를 할 수 있는 오디션 프로그램 ‘나도 아이돌!’이라는 프로그램을 개발해보자.
학습 목표
인공지능 음성 모델과 피지컬 도구를 활용하여 노래를 듣고 평가할 수 있는 오디션 프로그램 ‘나도 아이돌!’을 개발할 수 있다.
학습 준비물
마이크(노트북 또는 웹캠 내장 마이크 가능)
데이터 수집 아이디어
▲ #음성인식, #지도학습, #분류 학습, #오디션 프로그램, #노래인식, #노래검색
3-1 인공지능 모델 학습하기
본 세션에서는 인공지능 모델학습의 ‘분류: 음성’ 모델을 개발하여 노래를 듣고 인식율을 확인할 수 있도록 한다. 2개 이상의 다양한 노래를 클래스로 분류하여 인공지능으로 노래 실력(인식율)을 판단할 수 있는 프로 그램을 만들어 보자.
|
1) |
|
2) 모델학습의 이름은 ‘나도 아이돌’, 클래스 1은 ‘나비야’, 클래스 2는 ‘산토끼’로 정하고 각각의 클래스에 음성 데이터를 입력하였다. |
3) 데이터의 입력은 직접 마이크를 통해 입력하는 방식은 3초로 제한되어 있다. 그래서 운영체제(윈도우, 맥OS 등)에서 제공하는 녹음기를 사용해야 한다.
윈도우에서 제공하는 음성 녹음기는 사용법이 간단하다. 녹음기 앱을 실행하여 마이크를 클릭하여 녹음을 시작하고 완료되면 마우스 오른쪽을 해당 파일에 클릭하여 이름바꾸기, 파일위치 열기를 할 수 있다.
|
4) 데이터에 입력하는 노래는 ‘나비야’, ‘산토끼’로 매우 간단한 곡으로 만들었다. 노래의 길이는 테스트 버전에서는 길지 않게 20초 내외로 한다. 파일을 미리 준비한 다음 음성데이터를 인공지능 모델에 올린다. |
3-2 엔트리 화면과 오브젝트 구성하기
|
1) ‘나는 아이돌’ 엔트리 화면을 구성해 보자. 오브젝트 불러오기에서 ‘락커(2)’, ‘속이빈 별’을 불러왔다. 글상자를 불러와 ‘나도 아이돌 스타닷!’을 입력하였다. |
|
2) ‘속이빈별’ 오브젝트는 ‘속이 빈별’ 모양 1개 밖에 없다. 빈별에 불이 들어오는 모양을 복제하여 추가한다. 노래 점수가 높아지면 불이 들어오는 효과를 줄 수 있다. |
|
3) 속성에서 |
3-3 코블 블록 구성하기
코블 블록 조립을 위한 구성품은 다음과 같다.
2-4 엔트리 블록 코딩하기
블록 구성하기
1) 엔터키를 누르면 데이터 입력을 받도록 한다. ‘산토끼’의 신뢰도가 ‘나비야’의 신뢰도보다 높으면 ‘산토끼’의 노래를 변수인 으로 정하도록 한다. 만약 ‘나비야’가 더 높으면 ‘나비야’의 신뢰도를
으로 정하도록 조건값을 주었다.
을 코블의 숫자전광판에 표시하도록
을 추가하였다.
2) 에 따라 ‘신호보내기’를 하여 각 오브젝트가 실행되도록 한다.
‘락커(2)’ 오브젝트의 최종 코딩은 다음과 같다.
별셋 신호 이상이 되면 코블의 외부LED에 불이 들어오도록 코딩을 한다.
|
1) 인공지능 데이터 입력은 직접 녹음하면 3초 이내로 시간이 제한되기 때문에 녹음기에 녹음 후 음성파일을 올리도록 한다. |
오브젝트 코딩하기
|
1) ‘나도 아이돌 스타닷!’이라고 초기화하기 코딩을 다음과 같이 한다. |
2) ‘나도 아이돌 스타닷!’에서 ‘결과메시지’ 신호를 받으면 실행되는 코드 블록이다.
오브젝트 코딩하기
1) 시작하면 '속이빈별1'의 모양이 로 하여 빈별모양이 되도록 한다.
별의 모양이 이런 식으로 바꾸기 위해 ‘속이빈별’의 오브젝트를 개별적으로 구성하였다. 따라서 점수에 따라 ‘락커(2)’ 오브젝트에서 보내는 신호를 받아 ‘속이빈별’ 모양 또는 ‘속이찬별’ 모양으로 구성한다. 다른 ‘속이빈별’ 오브젝트도 ‘속이빈별1’ 오브젝트처럼 구성하되, 점수에 따라 신호를 받거나 받지 않도록 한다.
[실행하기]
|
1) 프로그램을 실행한 후, 엔터를 눌러 데이터를 입력한다. |
|
2) 녹음된 테스트 파일을 입력하여 넣으면 인식율에 따라 점수가 변환되어 나온다. 점수 분포에 따라 별점과 점수가 표시된다. 합격이 되면 코블의 각도 모터가 신호를 받아 합격 깃발이 올라간다.
3) 다음의 추가 내용을 넣어서 나만의 수신호 출발기를 만들어 보자.
•코블을 사용하지 않고 프로그램을 실행한다면 무대 효과를 다양하게 넣을 수 있다. 따라서 무대의 폭죽 등의 효과를 넣어보자. •노래 점수 변수, 리스트를 만들어 등장인물에 따라 순위를 표시하여 보자. •아이돌 노래 음원으로 직접 테스트 하여 보자. 친구들과 즐겁게 노래 실력을 겨루어보자. |