게시판홈 / 유닉스 / sound file format 문의 드립니다..새글쓰기 답글쓰기

저자 sound file format 문의 드립니다..
musein (14)
DOS(0)
2006-12-29


  게시일: 2008-11-11 16:54|||
업무 때문에 플그램을 하나 짜고 있는데욤..
초짜이다 보니.. 걸리는 부분이 너무 많네요.. ㅡ.ㅡ;;

우선 짤려고 하는 플그램은 audio out 단자와 mic in 단자를 loop back 형태로 연결하고, wav로 된 sine 파형의 sound를 출력, 녹음 하는 것이구요..
녹음 된 sound는 sine파형이 아니겠죠? 때문에 source와의 비교는 안될테고.. sine 파형이니 인접 파형과 비교하는 것입니다.. 적분을 이용하여 면적을 계산하면 될 듯 한데.. 그 방법도 잘 모르겠네요... ㅠ.ㅠ

혹.. 도움 좀 주실수 있으신지요.. 부탁 드리겠습니다.
musein (14)
DOS(0)
2006-12-29


  게시일: 2008-11-11 20:47|||
답글 감사합니다.
일단 지적하신 내용중에.. 녹음된 데이터는 아날로그가 아닌 샘플링된 디지털 데이터라는 말씀은 맞습니다.
그리고 그 녹음이 정상적으로 이루어 졌는지 확인하기 위한 방법으로 적분(말씀하신 차분이겠지요)을 이용하고자 하는 것입니다.
즉, 파형이 생기면 첫번째 파형과 두번째 파형이 동일한가를 비교하고자 하는 것입니다.
이러한 과정을 리눅스에서 파이썬으로 구현하고자 합니다..
좋은 의견 부탁 드리겠습니다.. ㅠ.ㅜ
musein (14)
DOS(0)
2006-12-29


  게시일: 2008-11-11 20:49|||
원본 파일은 아날로그 파형이고 녹음된 파일은 디지털파형이기때문에 두개의 비교는 거의 불가하다 할 수 있는 상태이기 때문에 일정한 파형이 나타나는 사인파형을 가지고 녹음 된 파일의 파형으로 분석하려는 것이거든요..
음....
플그램을 별로 해 본적이 없는 저로서는.. 머리가 뽀사지고 있습니다.. ㅠ.ㅜ
Anonymous (0)
비회원
  게시일: 2008-11-12 11:11||
1. 원본이 파일로 되어 있지 않고, 아날로그로 입력이 되고, 그것을 파일로(디지탈) 저장해서 비교하는 건가요?
원본이 파일로 되어 있지 않으면 저장된 것(녹음 파일)과 비교하기가 어렵습니다. 둘이 동기를 맞추면서 값을 비교해야 하는데, 두개가 동시에 시작한다는 것을 보장하기 어렵습니다.
동기를 맞추기 위해서 아날로그 출력단과 파일로 저장된 데이타를 동시에 건드릴 수 있도록 프로그램을 해야 합니다.
둘다 파일로 되어 있다면 한개씩 돌리면서 데이타 부분만 파일로 뽑아내고 두개의 파일만 비교하면 되겠죠.

2. 파이썬으로 될까요?
오디오 신호 처리인데, 파이썬으로 실시간으로 처리가 될지 의문입니다. 영상보다 데이타량이 적어서 될 수도 있겠지만, C/C++로 해야 되지 않나 싶습니다.

3. 원본과 저장된 것의 비교.
적분은 전혀 필요없고, 단순히 두개의 데이타 부분만(파일 헤더는 빼고)를 뺌셈 연산해서 0이면 같고 틀리면 0이 아닌 값이 나오는 것으로 비교해야 할거 같은데요.
원본이 아날로그라면 녹음된 것을 아날로그로 다시 만들어서 오실로스코프 등으로 찍어 볼 수 밖에 없을 것 같습니다. 이게 실제 가능한지는 안해봐서 모르겠습니다.

4. sine파형 소리
sine파형 소리라는 건 소리의 진폭(음량)이 sine파 형태로 커졌다 작아졌다 한다는 건지, 주파수가 높아졌다 낮아졌다(저음->고음->저음) 한다는 건지요? 둘다 문제는 되지는 않겠습니다만.
그리고 sine파 형태로 찍히는 건 오실로 스코프로 찍어 보신건가요?

결론적으로 신호 처리등의 백그라운드 지식이 필요하기 때문에 초보자가 할 수준의 프로그램은 아닌것 같습니다.
윈도우에서는 비슷한 일은 해봤는데, 리눅스도 크게 다르지는 않을 것 같네요.
wave 파일 포맷, 디지탈 신호 처리등의 기본 개념부터 잡으셔야 할 것 같습니다.
어쨌든 파이썬으로 소스가 공개된 프로그램을 구할 수 있지 않는 한 바로 답이 나올 것 같지는 않습니다.
신호 처리를 해본 경험자가 해도 2주 정도는 잡아야 할 것 같습니다.

www.kldp.org 나 www.devpia.com 에 한번 질문해 보시기 바랍니다.
좋은 결과 있으시기 바랍니다. ㅡㅡ;

ps) PSNR로 두개의 데이타의 동일함을 판단하는 것은 문제가 있는 것 같습니다.
PSNR이 같다는 것은 두개의 데이타가 동일하다는 것을 의미한다기 보다, 두개의 음질이 동일하다(quality가 같다)는 것을 나타낸다고 봐야 합니다.
PSNR은 영상이나 소리등의 데이타에서 퀄리티(signal vs noise의 정도)를 나타내는 수치 정도로 보시는게 맞을겁니다.
쉽게 애기해서 소녀시대 노래와 원더걸스의 다른 노래가 동일한 PSNR을 가질 수도 있습니다.

[ 메시지수정: creib2k 일시: 2008-11-12 11:32 ]
musein (14)
DOS(0)
2006-12-29


  게시일: 2008-11-18 17:00|||
어이쿠.. 제가 잠시 들어오지 않은 틈에 두분께서 답을 주셨네요..
감사합니다.. ^^;;;

근데.. 아직 문제는 해결 되지 않았는데요..
두분께서 오해르.. 제 설명이 부족한 듯 합니다..

먼저.. sine 파형의 wave 파일을 실행합니다. 이 때 line out - line in 단자를 연결하는 loopback cable를 통해 녹음을 진행합니다. 녹음 파일은 raw file 로 진행 할 예정이구요. 이 때 입력파는 곡선의 sine 파이기 때문에 디지털 형태의 raw file 하고는 직접 비교가 불가능하죠.. 그래서 raw file 하나로 처리 하려고 하는 것입니다.

sine파는 각 파형마다 적분했을 때 일정한 면적을 가지듯이 raw 파일의 파형도 디지털 형태를 가지고 각 파형마다 동일한 면적을 가질 것입니다. 그렇게 각 파형들을 비교 한다는 것입니다.
첫번째 파형의 면적(또는 매 순간 저장된 data의 합)을 기준값으로 두고, 그 뒤에 나오는 파형들이 첫번째 파형과 동일한 값을 가지는가 라는 것을 확인 하고자 하는 것이죠..

음.. 일단 raw file은 작성이 되었구요.. 조금 있다가 파일을 올려 보도록 하겠습니다. windows 용 gold wave 같은 프로그램을 사용하시면 파형을 보실 수 있습니다.. 지금 막힌 부분은 스테레오 파일이기에.. 좌/우 저장 되는 위치를 구별 지어야 한다는 것이죠.. 그래서 따로 저장하여 분석해야 할 것 같은데요..

휴.. 무지 긴데요... 역시 이해 하실 분이 드물 듯 합니다만.. ㅡㅡ;;

암튼.. 지금 문제는 스테레오로 저장 된 raw data file에서 어떤 기준으로 좌우로 저장 되었는가 라는 것을 찾는 것이 우선 일 듯 합니다.
(예를 들어 10바이트 단위로 좌/우 저장 될 수도 있구요.. 파일 전체 중 절반 나눠서 좌/우 들어 갈 수도 있기에.. 이것 부터 구별 된다면.. 음.. 배열로 저장해서 처리 하면 될 듯 한데요.. ) 아닐까요??? ㅡㅡ)a
다음글: PC 볼륨 조정 command (0)7669musein2008-12-07
이전글: 배드 섹터가 왕창 난 HDD에 데비안 설치를 하려는데... (2)9768combacsa2008-10-02

새글쓰기 답글쓰기
이동:

세상사는 이야기

  • 오타도 즐거운 안드로 >
  • 최고의 OCR 어플, Text >
  • 누구나 할 수 있는 순 >
  • 듀오백 컨텐츠 허브, >
  • 초딩도 할 수 있는 아 >
  • 듀오백 2.0, 최적의 등 >
  • 의자이기를 포기(?)한 >
  • 야후의 꼴통 짓과 플리 >
  • 책을 테이크 아웃? 크 >
  • 전자책(크레마 터치), >


  • RSS 구독 (익명 | 회원 | 강좌 | 포럼)
    (C) 1996 ~ 2014 QAOS.com All rights reserved.