Windows 10 IoT Core IoT Player with voice commands MunChan Park kaki104@daum.net Windows Platform Developm ent MVP www.facebook.com/groups/ w10app 유튜브 채널 구독 Windows 10 IoT Core IoT Player with voice commands
환경 및 준비 Windows 10 IoT Core version 10.0.16299.15 라즈베리파이3 가능하면 모두 영문 버전 사용을 추천 Windows 10 version 1709 (16299.192 ) 가능 하면 최신 버전으로.. Visual Studio 2017 version 15.5.4 변경 사항 확인은 여기 Windows 10 IoT Core version 10.0.16299.15 라즈베리파이3 USB 마이크, Headset, 웹 캠 등 음 성 녹음 장치, 스피커 장치
참고 자료 Windows 10 IoT Core Microsoft/Windows-iotcore-samples Microsoft/Windows-universal-samples VideoPlayback MediaPlayer를 사용하여 오디오 및 비디오 재생 MediaPlayer 소스
Media Player Windows 10 1607 변경 MediaPlayer -> Class MediaElement 대신 MediaPlayer 사용 추천 노출 함수 -> MediaPlaybackSession New MediaPlayerElement control New MediaSource AdaptiveMediaSource, MediaStreamSource , MseStreamSource, IStorageFile, IRando mAssessStream, IRandomAccessStreamRe ference, Uri Supported codecs MediaPlayerSurface 다른 컨트롤에 비디오 렌더링 가능 MediaTimelineController 여러 플레이어에서 콘텐츠 동기화
SRGS – Speech Recognition Grammar Specification W3C documents <grammar xml:lang="en-US" root="colorChooser“ tag-format="semantics/1.0" version= "1.0“ xmlns="http://www.w3.org/2001/06/grammar" /> <rule/> Each rule element must have unique id attribute. Attribute : id, scope, sapi:dynamic <ruleref/> Specifies a reference by the containing rule to another rule Attribute : uri, special, type <item/> Contains any valid rule expansion. Attribute : repeat, repeat-prob, weight Repeat=“0-1” : 선택 사항 <one-of/> 하위 항목 중 하나와 일치 <tag/> 태그 요소는 문자열 또는 ECMAScript (JavaScript, JScript)와 같은 의미 정보를 포함 하며 요소 또는 일련의 요소가 인식되면 추가 정보를 반환합니다.
IoT Player with voice commands 목표 : 음성으로 음악을 시작, 종료, 다음, 이전 등의 명 령을 내려서 mp3 파일을 재생하는 앱 내용 : SRGS를 이용해서 음성 인식 MediaPlayerElement를 이용해서 오디오 재생 기능 : 음성 명령으로 음악 재생, 멈춤, 다음, 이전으로 컨트롤 원하는 음악 검색 외장 디스크의 사용 IoT에 연결된 외장 디스크의 폴더에 접근해서 파일 목 록을 가지고 올 수 없습니다. Music 라이브러리에 mp3 파일을 업로드해서 사용합니 다.
Begin Playback Play, play the song, play the tune, play the track, begin, begin playback, start <rule id=“playCommands”> <ruleref uri=“#playAction”/> <item repeat=“0-1”> the </item> <item repeat=“0-1”> <ruleref uri=“#fileWords”/> </item> </rule> <rule id="playAction"> <one-of> <item> play </item> <item> start </item> <item> begin </item> </one-of> <rule id="fileWords"> <one-of> <item> song </item> <item> tune </item> <item> track </item> </one-of> </rule>
PC 환경 설정 확인 라즈베리파이에 아래 장 치 연결이 필요 합니다. 라즈베리파이에 한국어 보이스 설치하기 All settings -> Time & Language -> Region & language -> English (United States) English (United States), 한국어 -> Options -> Spee ch -> Download 라즈베리파이에 아래 장 치 연결이 필요 합니다. 마이크 장치 스피커 장치 라즈베리파이에 한국어 보이스 설치하기
앱 개발 순서 Windows Template Studio를 이용해서 프로젝 트 생성 Navigation pane 사용 MVVM Light 사용 앱 시작시 초기화 외장 디스크 연결 Speech Recognition 초기화 SRGS 초기화 MediaPlayerElement 초기화 뮤직 플레이 페이지 구현 제목, 이미지, 컨트롤 등 화면 디자인은 크게 신경 쓰지 않고 개발 합니다. IoT 디바이스에서 재생을 할 예정이기 때문에 Background play는 구현하지 않습니다.
뮤직 플레이 페이지 구현 로직 화면 구성 항상 음성 입력을 받을 수 있도록 대기 하도록.. Begin playback 구현 음악의 이미지 출력 음악의 제목, 장르 등의 기본 정보 출력 항상 음성 입력을 받을 수 있도록 대기 하도록.. Begin playback 구현 Pause playback 구현 Pause, pause the song, pause the tune, pause the track, pause playback, suspend, wait, hold Stop playback 구현 Stop, stop the song, stop the tune, stop playback, end playback, quit Next song 구현 Next, next the song, next the tune, next playback Previous song 구현 Previous, previous the song, previous the tune, previous playback 음악 검색 기능 구현 – 장르 필터링 기능 Play exciting music, play dance music, start ballad playback …
앱 개발 실습