본문 바로가기
728x90
반응형

전체 글194

부울 연산과 논리 게이트 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 2가지의 상태로 정보를 표현하는 것을 이진(Binary)라고 부른다. 문자상으로 "두 가지 상태"를 일컫는다. 2가지 상태는 정확히 "참"과 "거짓"으로 나타내는 데 필요하다. 컴퓨터 안에서 On상태는 전류가 흐르고, True를 나타낸다. Off상태에서 전기는 흐르지 않고 False를 나타낸다. 이 True와 False를 이진수인 1과 0을 사용해서 나타낼 수 있다. 트랜지스터가 사용되면서 전류를 흐르게 하거나 끊는 것 이상으로 다른 수준의 전류를 허용할 수 있게 됐다. 어떤 초기의 전자 컴퓨터는 3개의 상태(Ternary-3 States)를 갖고 있는 3진법을 사용하거나 5가지 상태(Quinary-5 states).. 2022. 7. 26.
전자 컴퓨팅 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 20세기 초반 이후 사회 시스템의 규모는 예측 불가능할 정도로 계속 커졌다. 20세기 중반 인구수는 초반에 비해 대략 2배가 늘었고, 세계 무역 및 운송 네트워크는 서로 연결되었으며, 우리의 기술과 과학 수준이 더 높은 안목을 갖기 시작했고, 다른 행성을 탐험하는 것을 진지하게 고려하면서 복잡성, 관료주의 등 데이터의 폭발적인 증가로 집합 자동화와 계산의 필요성을 증가시켰다. 가장 크기가 큰 전기식 기계 컴퓨터들 중 하나는 1944년 2차 세계 대전 중 IBM이 동맹군을 위해 개발한 Harvard Mark1 이었다. 이 컴퓨터는 코일을 이용한 계전기로 작동하는 데, 계전기 안에 있는 기계식 스위치는 무거워서 열린 상.. 2022. 7. 26.
초기컴퓨팅 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 기원전 2500년 메소포타미아에서 사람들의 계산을 돕는 컴퓨팅 도구인 주판이 개발되었다. 이후, 약 4000년 동안 astrolabel (천문 관측 장치 ; 위도 계산기) 등의 천문 관측 도구, Slide rule (곱셈과 나눗셈을 돕는 계산자), 여러 가지 시계 등이 발명되어 산술 계산을 도왔다. 1613년 컴퓨터라는 단어가 처음 등장, 하나의 직업으로서 최고의 산술가로써 하루를 짧은 단위로 줄일 수 있게 해 줄 것이라 하였고, 1800년 후반에 컴퓨터라는 의미는 기계를 의미하게 됐다. 1694년 Leibniz의 Step Reckoner라는 영리한 계산 기술이 발명됐다. 주행기록계처럼 단순히 기어를 돌림으로써 농부.. 2022. 7. 24.
프로젝트 준비 과정 - PoC ( Proof of Concept ; 개념 실증) PoC ( Proof of Concept ; 개념 실증) 개발하려는 시스템의 컨셉이 정말 실현 가능한지 검증하는 작업 PoC의 실시 타이밍 PoC 계획서 PoC 목적 검토 내용이나 목표치를 명확히 하는 것이 중요 -과거 1년치 POS 데이터를 사용해 빵 추천 AI가 80% 정확도로 추천 데이터가 나오는지 검증한다 -과거 1년치 POS 데이터 연계와 빵 추천 AI기반으로 데이터 추출 처리를 1시간 이내에 할 수 있는지를 검증한다 -80%를 달성하면 다음 스텝으로 간다(본격 개발을 위한 예산 조정 등) -70~80%의 경우, 튜닝 여지 유무에 따라 다음 스텝으로 갈지를 판단한다 -70% 미만인 경우에는 2회까지 PoC를 반복한다. 그래도 달성하지 못하는 경우에는 개발을 단념한다. PoC 범위 서비스 전체에서.. 2022. 7. 24.
EDA ) 악기별 'C4' constant-Q(데시벨) 악기분리 후 채보를 진행하기 위해 cqt가 비슷한 악기끼리 모아서 모델을 만들어보려고 한다. Class 1 (Acoustic Grand Piano(0) ~ Dulcimer(15)) Class 2 (Drawbar Organ(16) ~ Synth Choir(54)) Class 3 (Orchestra Hit(55) ~ Shakuhachi(77)) Class 4 (Whistle(78) ~ Gunshot(127)) 2022. 7. 12.
중간 점검 일단 기본적인 CNN구조로 모델을 만들어 훈련시켜 결과를 보았다. 다음과 같이 음성의 배음구조가 아닌 소리의 크기만을 가지고 노트를 찾는 모습을 볼 수 있었다. 다음 모델은 배음구조를 학습할 수 있도록 마지막 커널사이즈를 (n_bins, 3)과 같이 바꾸어 보았다. (위의 모델은 커널 사이즈 (7,7), (5,5), (3,3)을 사용하였다.) 위쪽 노트에 사용된 악기가 무엇인지는 모르겠지만 음성의 배음을 학습했는지 배음노트를 출력하지않았다. 하지만 노트의 길이라던가, cqt가 잘 안되는 악기가 있는 것 같다. 문제는 노트의 길이는 배음구조를 파악하여 뽑아내려는 노트가 어떤 악기인지 알아야 노트의 길이를 제대로 빼낼 수 있을 것으로 생각되기 때문에, 단순히 커널을 시간축으로 길게 만들기만 해서는 노트의 길.. 2022. 7. 11.
채보 AI (AMT 모델)을 만들기위한 데이터셋 생성 데이터는 9가지 soundfont를 이용하여 wav파일과 midi파일을 생성하고, wav파일은 librosa를 이용하여 constant-Q로 변환(cqt 데이터)하고, midi파일은 pretty_midi를 이용하여 piano_roll로 변환하여, TFRecord로 저장하여 모델훈련에 쓸 예정이다. 데이터는 128개의 악기 중 1~10개를 선택하여 각 악기마다 2~10개의 노트를 연주하게 하였다. wav파일은 44100의 sampling rate로 만들고, piano_roll은 25의 sampling rate로 만들고 cqt는 441의 hop_length와 12*4의 bins per octave로 변환하여 piano_roll과 4배의 크기차이를 가지게 만들었다. 4배의 크기차이를 이용하여 2번 MaxPoo.. 2022. 7. 10.
SW분양 직무 분류 Career Path 2022. 6. 30.
날짜별 진행상황 2022/06/14 - 나를 포함한 팀원 3명이 각자 데이터를 분석하고 전처리하기로 함. - 명령어 모음(일반남녀) 데이터를 맡음. - 데이터 정보가 json형식으로 말하는 사람에 대한 많은 데이터와 대본이 있음. - 파일명과 대본만을 따로 떼어내서 csv파일로 변환. - 다른 데이터의 경우 전사규칙으로 인한 특수토큰과 다중으로 일상표기/발음으로 적혀있는 등 전처리가 까다로움. - 제일 간단한 명령어 모음 데이터를 이용하여 모델을 학습시켜보기로 함. - 모든 데이터를 한 번에 학습시키기에는 computer resources가 적어 데이터를 1000개씩 나누어 train data와 validation data로 나누어 학습시키려 함. 2022/06/15 - 오디오 파일을 학습시킬 때마다 불러와서 변환하는 .. 2022. 6. 30.
개요 직위 : 팀장 STT 모델을 활용하여 음성으로 PPT를 동작시키는 프로그램을 만든다. 주요 STT모델 kospeech XLSR-53-Wav2vec2 이용이 쉬운가? 어려움.(오류발생이 심함) (경로설정문제, 패키지호환성문제) 쉬움(Hugging face) 학습이 시키기 쉬운가? 경로설정 문제와 전처리기 사용하기 위한 코드 분석이 필요할 것으로 보임. 모델이 3.5GBit으로 매우 큼. cuda로만 학습시킬 수 있음. -> 좋은 GPU가 필요 정확도가 좋은가? kospeech의 베이스인 deepspeech2가 LibriSpeech test-clean데이터에서 WER가 5.3 53개국의 언어로 음향모델이 사전학습되어 적은 데이터로 좋은 결과를 냄. LibriSpeech test-clean에서 WER이 1.5.. 2022. 6. 29.
sounddevice ) VSCode에서 소리 재생하기 + 녹음 conda install -c conda-forge python-sounddevice 또는 pip install sounddevice 위의 명령어를 통해서 sounddevice를 설치한다. import sounddevice as sd sd.play(arr, sample_rate) # 재생시작 백엔드에서 작동한다. # 재생을 즉시 종료하려면 sd.stop() # 재생이 끝날 때까지 기다리려면 sd.wait() # 원하는 구간만 재생할 때 sd.play(arr[시작시간*sample_rate:종료시간*sample_rate], sample_rate) 녹음파일 생성 sd.query_devices() # 사운드 장치 정보를 모두 불러온다. # 실행 결과 0 Microsoft Sound Mapper - Input, .. 2022. 6. 12.
소프트웨어 인스펙션 체크 리스트 데이터 참조 에러(Data Reference Errors) : 올바르지 못하게 선언되거나 잘못된 값으로 초기화 된 Data를 참조할 경우 발생하는 에러. 초기화되지 않은 변수가 있는가? 데이터 오버플로우(Data Overflow) 에러. “Off by one” 오버플로우 에러. 변수가 참조하는 메모리가 할당되어 있지 않은 경우(Dangling Reference). 변수에 맞는 타입의 값이 저장되어 있지 않은가? 변수가 2개 이상의 함수에서 참조될 때 동일하지 않은 값이 참조되는가? 데이터 선언 에러(Data Declaration Errors) : 부적절하게 선언된 변수나 상수를 사용할 때 발생하는 에러. 명시적으로 선언되었는가? 올바른 타입으로 선언되었는가? 선언 시점에 값이 Assign 되었는가? 선언.. 2022. 6. 9.
728x90
반응형