LipSync
공연장에서 울리고 있는 소리를 마이크로 받아, 미리 해석해 둔 악곡의 지문 DB와 대조하여 “지금 어떤 곡이, 어디까지, 어떤 속도로 울리고 있는지”를 출력하는 노드입니다. 입력 포트는 없으며, 모두 노드 UI에서 조작합니다.
사용 순서는 폴더를 선택 → Analyze → Listen 입니다. Analyze는 지정한 폴더를 하위 폴더까지 재귀적으로 훑어 지문 DB를 만듭니다. DB가 비어 있는 상태이거나 DB를 불러오는 중에 Listen을 눌러도 시작되지 않습니다(상태 칸에 그 내용이 표시됩니다).
출력
- Track Path — 일치한 악곡의 파일 경로
- Position — 초 단위의 재생 위치
- NormalizedPosition — 0~1. DB에 길이가 기록되어 있는 곡에서만 출력됩니다
- Playback Speed — 위치의 변화로부터 추정한 재생 속도
- Confidence — 일치의 확실성
- Is Matched / Profile ID — 일치 중인지 여부와 일치에 사용된 프로파일
설정
- Capture (s) — 1회 마이크 캡처 길이. 기본 5초, 슬라이더는 2~10
- Interval (s) — 대조를 시도하는 간격. 기본 2초, 슬라이더는 0.5~5
- Profile — 지문 추출 시의 대역 가중치.
Auto(모든 프로파일을 시도)와 Balanced, Male Vocal, Female Vocal, Vocaloid, High Pitch / Bright 5가지 중에서 선택할 수 있습니다
지문 DB는 수 MB의 JSON이 될 수 있으므로 메인 스레드 밖에서 비동기적으로 불러옵니다. 불러오는 중에는 Listen을 시작할 수 없습니다.
입력 포트
없음
출력 포트
| Port ID | 타입 |
|---|---|
Track Path | string |
Position | float |
NormalizedPosition | float |
Playback Speed | float |
Confidence | float |
Is Matched | bool |
Profile ID | string |
스크립트에서 설정할 수 있는 멤버
| 경로 | 타입 |
|---|---|
currentDeviceID | string |
analyzeFolderPath | string |
matchProfileId | string |
isListening | bool |
isAnalyzing | bool |
isDbLoading | bool |
analysisProgress | float |
statusText | string |
matchedTrackPath | string |
matchedPosition | float |
matchedSpeed | float |
matchedConfidence | float |
isMatched | bool |
matchedProfileId | string |
Synapse Apps (스크립팅)
await synapse.modules.create({ type: "LipSync" }) 