전체 글 17

17. diff -svc를 직접 사용해 보자.

이번 글에서는 저번 글에서 알아보았던 diffusion 모델 중 하나인 diff-svc를 직접 사용해보겠습니다. https://github.com/prophesier/diff-svc 이 링크의 자료들을 활용하였습니다. 이 모델을 이용하면 어느 사람의 말소리들로 다른 노래를 부르도록 만들 수 있습니다. 저는 쿤타라는 가수의 목소리로 뉴진스의 디토를 부르도록 만들어 볼건데요. 우선 쿤타라는 가수의 목소리를 얻어서 15초 단위로 끊어야 합니다. 데이터가 아주 많아야 결과가 좋긴 하지만 시간 관계상 조금의 데이터로 진행을 해보겠습니다. 보통 몇시간 정도의 데이터가 필요하지만 저는 고작 3분 정도로 해보겠습니다. ㅋㅋ 결과가 어떨지 궁금합니다. 오디오 파일들을 이런식으로 나눠서 준비해 주고요 이걸 압축해 줍니다...

16. codeup 4503 : 바이러스 문제 해결

이번 글에서는 최단 경로 문제집 안에 있는 바이러스라는 문제를 해결해보도록 하겠습니다. 알고리즘 설계는 다음과 같이 하였습니다. 함수를 재귀적으로 호출하여 전파되어 있는 컴퓨터의 수를 찾는 방식입니다. 코드는 다음과 같습니다 #include #include bool a[1000][1000]; //컴퓨터 정보 배열 bool visited[1000]; //방문 정보 배열 int cnt = 0; void f(int start, int comcnt) { //함수 visited[start] = true; //방문 정보 확인 cnt++; //카운트 증가 for (int i = 1; i

AP 프로그래밍 2023.07.16

15. 자판기에서 가장 많이 먹을 수 있는 경우의 수

학교에서 지나가다가 자판기를 보게 되었는데 자판기에서 한정된 돈으로 얼마나 많은 음료수를 먹을 수 있는 지 궁금해서 코드로 구현을 해보았습니다. #include #include #define NUM_OF_PRODUCTS 3 // 상품 정보 구조체 typedef struct { char name[20]; int price; } Product; // 상품 정보 배열 초기화 void initializeProducts(Product products[]) { // 각 상품의 이름과 가격을 설정 strcpy(products[0].name, "콜라"); products[0].price = 1000; strcpy(products[1].name, "사이다"); products[1].price = 900; strcpy(p..

14. diff - svc에 대하여

Singing Voice Conversion (SVC)은 노래의 내용과 멜로디는 그대로 유지하면서, 다른 가수의 목소리로 노래를 변환하는 기술입니다. 최근 SVC 모델은 content encoder를 통해 소스 음성에서 추출한 content feature와 conversion model을 사용하여 목소리 변환을 수행합니다. 또한, ASR (자동 음성 인식) 모델을 content encoder로 활용하여 각각을 개별적으로 학습시키는 경우도 있습니다. Conversion model은 GAN이나 회귀 모델을 활용하며, GAN을 사용하는 경우 파형을 생성하고, 회귀 모델을 사용하는 경우 mel spectrogram과 같은 spectral feature로 변환한 후 파형을 생성합니다. 이 논문에서는 diffusi..

13. codeup 3701 : 파스칼 삼각형 문제 해결

파스칼 삼각형을 출력하는 문제입니다. 이 문제도 왠지 재귀함수를 이용하여 풀면 좋을 것 같습니다. 다음과 같이 반복문을 활용하여 여러 숫자를 출력할 것인데요. 삼각형의 가장자리? 부분은 모두 1이기 때문에 i=1 or i=j 조건을 사용하여 1을 출력하여 줍니다. 그리고 배열을 선언하여 각 부분의 수들을 배열에 저장하여 아래로 내려갔을때 위의 수 두개를 합한것을 계산할 수 있도록 합니다. 코드는 다음과 같습니다. #include int main(){ long long arr[100][100]; //배열 선언 int n; scanf("%d",&n); //삼각형 층 입력 for(int i=1;i

AP 프로그래밍 2023.06.05

11. 가우스 함수 그래프

이번 게시글에서는 가우스 함수에 대하여 간단히 알아보고 R을 이용하여 그래프를 표현해보도록 하겠습니다. 가우스 함수의 일반적 형태는 다음과 같습니다. 여기서 a, b, c는 실수인 상수이고 c는 0이 아닙니다. 가우스 함수의 그래프는 좌우대칭의 종 모양의 곡선으로 +/-의 극한을 향하면서는 급격히 감소하는 특성을 가지게 되는데요. a는 이 종 모양의 높이, b는 꼭대기의 중심 위치, c는 종모양의 너비를 결정하게 됩니다. 가우스 함수의 특징 -로그를 취하면 이차함수의 형태를 띈다. -x = b ± c에서 두 변곡점을 가진다. -해석 함수이다. -x → ∞일 때 극한은 0으로 수렴한다. -두 가우스 함수의 곱은 가우스 함수이며 두 가우스 함수의 합성곱도 가우스 함수이다. -적분 형태가 오차 함수의 형태이다..

10. 해외 이공계 체험 학습 후기

5월 첫째 주에 미국 동부로 해외 이공계 체험학습을 다녀왔는데요. 다녀온지는 조금 됐지만 간단히 정리해보도록 할게요. 1일차: 비행기를 열몇시간 타고 미국에 도착하게 됩니다.뉴욕 jfk공항을 나와서 첫 끼니로는 샌드위치를 먹고 모마 미술관으로 향했습니다. 다양한 미술 작품들을 감상할 수 있어서 좋았습니다. 그 다음에는 자유의 여신상 유람선을 타고 나서 전망대로 가서 뉴욕 시내를 한눈에 볼 수 있었습니다.2일차에는 프린스턴 대학교에 갔습니다.그곳에서 핵융합과 관련된 특강을 인상깊게 들었던것 같습니다. 점심에 먹은 치즈 버거도 정말 맛있었습니다. 그 후 나사 센터에 들려 잠깐 특강을 듣고 2일차를 마무리 하였습니다. 3일차에는 워싱턴 D.C를 탐방하였습니다. 국회의사당, 링컨 기념관등 많은 의미 있는 장소를..

9. codeup 2641 : 숏다리의 계단 오르기 (Small) 문제 해결

이전 게시글과 비슷한 느낌의 문제를 하나 풀어보겠습니다. 계단을 오르는 경우의 수를 계산하는 문제인데요. 1칸, 2칸, 3칸씩 오를 수 있지만 3칸을 오른뒤에 두번은 1칸 또는 2칸 밖에 오르지 못하는 조건이 붙어있네요. 이번 문제도 재귀함수를 이용하여 풀면 좋을 것 같다고 생각하였습니다. 우선 올라가야할 계단의 수를 입력 받고 올라간 계단의 수와 3칸 올라가는 것에 대한 조건을 판별해줄 변수를 인자로 갖는 함수를 만들어 줍니다. 3칸씩 올라가는 경우의 수를 우선적으로 세줍니다. 그러나 3칸을 갈때에는 조건이 있으므로 m인자에 3이라는 값을 줍니다. 그럼 다음 함수 호출부터 m의 값을 1씩 줄이게 될텐데 m의 값이 0보다 클때 3칸을 가지 못하도록 하여 이 조건을 만족시킬 수 있습니다. 3칸씩 올라가고 ..

AP 프로그래밍 2023.05.28

8. codeup 2608 : 동아리 회장 선거 문제 해결

이번 글에서는 코드업 2608번 문제인 동아리 회장 선거 문제를 해결해 봅시다. 문제의 내용은 다음과 같은데요 다음과 같이 알고리즘을 설계해 보았습니다. 사람 수 n이 주어지면 배열에 우선 O부터 저장하기 시작합니다. O를 계속 저장하다 보면 사람 수 만큼 O가 배열에 저장되었을 것입니다. 그러면 그것이 하나의 경우의 수가 완성된 것이고 이제부터는 O의 갯수를 하나씩 줄여가며 그 자리에 X를 추가해주는 것입니다. 또 그다음은 O를 저장하고 다음은 O를 제거하고 X를 추가하고... 이러한 작업을 반복하다 보면 모든 경우의 수가 나오게 될것입니다. 이러한 반복적인 작업은 재귀적으로 표현할 수 있을 것 같아 재귀함수로 표현해 보았습니다. #include char arr[7]; //문자열 저장 배열 void f..

AP 프로그래밍 2023.05.28