VRChat OSC Voice Changer: Mic Routing & Avatar Parameters
VRChat OSC voice changer setups คือ ที่ avatar presence goes จาก “sounds different” ไปยัง “responds เช่น real character” คู่มือส่วนใหญ่ stop ที่ audio routing - เลือก voice changer เลือก virtual mic ใน VRChat done นั่น covers sound แต่ VRChat’s Open Sound Control layer opens second channel ที่ mic activity ของคุณ directly animates avatar expressions triggers emote sequences และ drives parameter blendshapes ที่ no face tracker reaches คู่มือนี้ covers full picture: audio chain OSC data path avatar parameter mapping สำหรับ Stream Avatar System voice-triggered emote automation และ practical script setup ที่ ties มัน together
TL;DR
- VRChat uses two separate channels สำหรับ voice: low-latency audio capture audio input (เสียง mic ของคุณ) และ UDP OSC messages (parameter data สำหรับ avatar animation)
- Voice changer จัดการ audio channel OSC bridge script จัดการ data channel - พวกเขา run ใน parallel และ ไม่ conflict
- Stream Avatar System spec ใช้ VoiceVolume VoiceActivity และ VoicePitch float parameters ไปยัง drive mouth/expression blendshapes โดยไม่มี face tracking
- คุณสามารถ trigger emotes ด้วย Bool parameters ส่ง over OSC บน voice events หรือ hotkey presses ภายใน voice changer’s macro system
- VRChat’s default OSC port คือ 9000 UDP ไม่มี special configuration จำเป็นยกเว้น port 9000 already taken
- VoxBooster ทำงาน เช่น audio layer ใน chain นี้ด้วย no additional configuration บน its end
วิธี VRChat จัดการ Two Separate Channels สำหรับ Voice
เพื่อความเข้าใจว่าทำไม OSC integration ทำงาน way ที่มัน ทำ คุณต้อง see two channels ที่ VRChat ใช้ สำหรับเสียง separately
Channel 1 - low-latency audio capture audio VRChat ล่า voice ของคุณผ่าน Windows Audio Session API มันอ่าน จาก microphone device ที่คุณ selected ใน VRChat’s Settings → Microphone นี่คือ channel ที่ deliver actual sound ที่ other players ได้ยิน voice changer เช่น VoxBooster inserts มัน ที่นี่ ที่ OS audio layer ดังนั้น processed voice ถึง VRChat โดยไม่มี any in-game configuration VRChat simply sees microphone ไม่ voice changer
Channel 2 - OSC UDP messages VRChat ฟัง on UDP port 9000 สำหรับ Open Sound Control packets พวกเขา carry structured data: avatar parameter names paired ด้วย Float Int Bool หรือ String values VRChat takes values เหล่านั้น และ writes พวกเขา ลงใน active avatar’s Animator layer ใน real-time channel นี้ มีอะไร ไป ทำ ด้วย audio - มันคือ purely about driving visual animation parameters
Reason นี้ powerful: audio เพียง alone only drives VRChat’s built-in viseme system (basic mouth-open/close animation จาก volume thresholding) OSC ให้คุณ drive arbitrary custom parameters - ความหมาย any blendshape any state transition any behavior avatar’s animator มี wired up
OSC bridge script นั่ง between two channels นี้ และ ทำ one job: มัน ฟัง ไปยัง audio activity (หรือ hotkey events) จาก voice changer ของคุณ และ translate นั่น ลงใน OSC parameter packets ส่ง ไปยัง VRChat voice changer และ VRChat ไม่เคย ต้องการ know about each other นอกเหนือจาก individual connection points ของพวกเขา
Audio Chain: Voice Changer ไปยัง VRChat Mic Input
ก่อน touching OSC getting audio chain right คือ prerequisite
ตั้งค่า VoxBooster เป็น Capture Source
VoxBooster register virtual microphone ที่ Windows audio layer via low-latency audio capture VRChat reads จาก virtual mic เดียวกัน way มันอ่าน any physical mic การตั้งค่าคือ:
- ติดตั้ง VoxBooster และเปิด launch มัน ยืนยัน virtual microphone device ปรากฏ ใน Windows Settings → Sound → Input
- เลือก physical microphone ของคุณ เป็น VoxBooster’s input source ภายใน VoxBooster UI
- เลือก voice preset หรือ configure effects (pitch formants AI model - ขึ้นอยู่กับ character ที่คุณ building)
- ใน VRChat ไป ไปยัง Settings → Microphone และ ยืนยัน correct device selected
VRChat’s microphone selection behavior เปลี่ยน ใน 2023: มัน now โดยค่าเริ่มต้น shows physical input devices และ อาจ hide virtual ones ขึ้นอยู่กับ driver presentation ถ้า VoxBooster’s virtual mic ไม่ปรากฏ ใน VRChat list ตรวจสอบ ว่า device listed เป็น “Ready” ใน Windows Sound Settings (ไม่ “Disabled” หรือ “Not plugged in”)
VRChat Voice Settings ที่ Matter สำหรับ Processed Audio
VRChat ใช้ post-processing ไปยัง whatevermicrophone input มัน ได้รับ สำหรับ processed voice (ซึ่ง already equalized และ pitch-shifted) few ของ settings เหล่านี้ ต้อง attention:
| VRChat Setting | Default | Recommendation for Voice Changer |
|---|---|---|
| Microphone loudness gate | เปิด | Lower threshold หรือ disable - processed audio อาจ clip gate |
| Voice falloff range | 25m | Keep default เป็นเกี่ยวกับ proximity ไม่ processing |
| Spatialized voice | เปิด | Keep บน เพิ่ม VR presence independent ของ voice effect |
| Allow avatar audio override | User setting | Only relevant ถ้า wearing avatars ที่ override mic settings |
Loudness gate คือ most common point ของ failure VRChat ใช้ volume threshold ด้านล่าง ที่ cut microphone ของคุณ - นี่ prevents ambient noise แต่ สามารถ also ตัด voice changer output ที่ over-compressed หากเสียง ของคุณ keeps ตัด ลงใน และ out ใน VRChat lower gate threshold ใน VRChat’s Microphone settings หรือ ลด compression ใน VoxBooster
อะไร คือ VRChat OSC และ อะไร มันสามารถ Actually ทำ
VRChat Open Sound Control (OSC) เป็น real-time messaging protocol VRChat introduced เป็น first-party feature ใน 2022 มันทำงาน over UDP บน local machine (ไม่มี internet connection required ไม่มี VRChat server involved) และ allow external applications ไปยัง read และ write VRChat avatar parameters ใน real-time
OSC ใน VRChat สามารถ ทำต่อไปนี้:
- Write Float Int Bool หรือ String values ไปยัง any avatar parameter ที่มี “Allow OSC write” enabled ใน avatar’s descriptor
- Read avatar parameter values back จาก VRChat (VRChat ส่ง on port 9001)
- Send chatbox messages programmatically
- Trigger VRChat Actions (turning on/off avatar features ที่ wired ไปยัง Action parameters)
- Simulate input controls (movement axes button presses) จาก external hardware หรือ software
สำหรับ voice-changer integration relevant capabilities คือ writing Float และ Bool parameters ไปยัง avatar parameters ใน real-time นี่คือ mechanism ที่ enable mic-level-driven mouth animation voice-activity expressions และ hotkey-triggered emotes
Stream Avatar System: Spec ที่ Makes OSC Voice Useful
Stream Avatar System เป็น community standard สำหรับ VRChat avatars ที่ define consistent set ของ OSC-writable parameters สำหรับ streamers และ VTubers ที่อยาก reactive avatar animation โดยไม่มี face tracking hardware ถ้า avatar ของคุณ built ไปยัง Stream Avatar System spec มัน ships ด้วย Animator layer ready ไปยัง receive parameters เหล่านี้:
| Parameter Name | Type | Description |
|---|---|---|
| VoiceVolume | Float | Current mic amplitude 0.0-1.0 normalized |
| VoiceActivity | Bool | True ขณะ voice เป็นอยู่เหนือ noise threshold |
| VoicePitch | Float | Approximate fundamental frequency normalized ไปยัง 0.0-1.0 range |
| VoiceEmotion | Int | Mapped ไปยัง expression states (0=neutral 1=happy 2=sad 3=angry 4=surprised) |
| IsStreaming | Bool | Optional flag สำหรับ activating streaming-mode overlays บน avatar |
เมื่อ OSC bridge script ส่ง values เหล่านี้ ใน real-time avatar’s mouth opens ใน proportion ไปยัง voice volume (replacing VRChat’s coarse viseme system) expressions shift based บน pitch contour และ avatar goes idle-neutral เมื่อคุณ stop speaking ใน Stream Avatar System rig นี่ produce mouth และ expression quality ผู้คนส่วนใหญ่ associate ด้วย expensive face trackers - มันคือ ไม่ full face tracking แต่ สำหรับ voice presence มันคือ close enough ว่า casual observers มักจะ ไม่ notice difference
คุณสามารถ find avatars built ไปยัง spec นี้ on VRChat community hubs เมื่อ shopping สำหรับ avatar look สำหรับ “OSC ready” หรือ “Stream Avatar System” ใน description ถ้าคุณ own existing avatar และ มี Unity + VRChat SDK adding parameter layer คือ matter ของ extending Animator Controller - VRChat OSC documentation covers parameter wiring ใน detail
Voice-Triggered Emotes: Wiring OSC Bool Parameters
One ของ more entertaining applications เป็น triggering avatar emotes อัตโนมัติ จาก voice activity - ดังนั้น avatar ของคุณ waves claps หรือ reacts physically ไปยัง specific moments ใน speech ของคุณ
วิธี Bool-Triggered Emotes ทำงาน ใน VRChat
VRChat avatars สามารถ มี Bool parameters ใน Animator layers ของพวกเขา ที่เมื่อ set ไปยัง True enter specific state (playing emote clip) และ return ไปยัง False เมื่อ clip finishes (via transition ด้วย “Exit Time” หรือ OSC reset) เพื่อ trigger emote via OSC คุณ ส่ง message ไปยัง VRChat/avatar/parameters/YourParameterName ด้วย Bool True value VRChat writes มัน ไปยัง Animator transition fires emote plays
OSC message format เป็น: /avatar/parameters/EmoteWave True (ใช้ VRChat’s OSC address format)
Two Ways ไปยัง Trigger จาก Voice Changer
Method 1 - Volume threshold triggers Bridge script monitors audio output จาก VoxBooster’s virtual mic detect เมื่อ amplitude exceed threshold สำหรับ more กว่า N milliseconds และ fire OSC Bool useful สำหรับ “start talking” และ “stop talking” transitions - ส่ง VoiceActivity True บน voice start และ VoiceActivity False บน voice end
Method 2 - Hotkey-based triggers VoxBooster ถ่ายทำ programmable hotkeys สำหรับ switching presets firing soundboard clips และ triggering macros Bridge script ฟัง สำหรับ global hotkey และ fire OSC emote parameter เมื่อ key นั่น pressed นี่ให้ intentional control: press F5 ขณะ talking ไปยัง wave press F6 ไปยัง ทำ laugh animation ทำความสะอาดมากขึ้นสำหรับ emotes กว่า trying ไปยัง detect พวกเขา จาก audio โดยอัตโนมัติ
Simplest script implementation สำหรับทั้ง methods ใช้ Python ด้วย python-osc library
ดูสคริปต์ของ Python ตรวจสอบในส่วนของภาษาอังกฤษต้นฉบับสำหรับวิธีการตั้งค่าอื่น ๆ
OSC-Aware Proxy: Running Voice Changer และ OSC ใน Parallel
Cleanest production setup ทำงาน VoxBooster และ OSC bridge เป็น two independent processes ที่ share เพียง virtual mic device เป็น intermediary ไม่มี process ต้องการ know about internals อื่น ๆ
Physical Mic │ ▼ VoxBooster (audio processing: pitch formants AI model) │ ├── [low-latency audio capture out] → VRChat mic input → VRChat audio engine │ └── [Virtual mic monitor] → OSC bridge script → UDP port 9000 → VRChat OSC engine │ ▼ Avatar parameters (VoiceVolume VoiceActivity etc.)
Virtual mic monitor (sounddevice InputStream ใน script) อ่าน already-processed audio นี่หมายความว่า OSC data reflect voice changer output ไม่ raw mic - ดังนั้น VoiceVolume based บน transformed voice level ซึ่ง matches exactly what other players ได้ยิน นี่คือ correct behavior: avatar’s mouth movement ควร follow audible voice ไม่ raw mic
Running Bridge ที่ Startup
ไปยัง launch bridge โดยอัตโนมัติ เมื่อ Windows starts (ดังนั้น คุณ ไม่ต้อง manually ทำงาน มัน ทุก VRChat session):
- บันทึก bridge script ของคุณ somewhere persistent เช่น C:\Users\YourName\vrc-osc-bridge\bridge.py
- สร้าง .bat file: pythonw C:\Users\YourName\vrc-osc-bridge\bridge.py
- Press Win+R type shell:startup และ place shortcut ไปยัง .bat ใน folder นั้น
pythonw (โดยไม่มี console window) keeps bridge ทำงาน silently ใน background มัน ใช้ negligible CPU - audio callback เพียง ทำงาน 100 ครั้ง ต่อวินาที และ ทำ single amplitude computation
Mic Chain Latency: อะไร OSC เพิ่ม และ อะไร มันไม่ได้
Common concern เป็น ว่า adding OSC messaging introduce perceptible lag ไปยัง avatar animation numbers เป็น reassuring
Audio path latency set โดย VoxBooster’s processing mode DSP effects (pitch formants EQ) ทำงาน ต่ำกว่า 10ms AI voice model inference ใน Low-Latency mode ทำงาน approximately 80ms บน mid-range GPU นี่คือ delay ระหว่าง speaking และ other players ได้ยิน you - มันคือ unrelated ไปยัง OSC
OSC parameter latency คือ delay ระหว่าง voice activity และ avatar animation responding bridge script’s audio callback fires ทุก ~10ms (100 callback cycles ต่อวินาที ที่ 48kHz ด้วย standard buffer sizes) Adding UDP transmission on localhost (sub-millisecond) และ VRChat’s Animator update cycle (~30ms ที่ 30fps ใน animator update step) end-to-end OSC latency คือ 30-50ms
Net result: avatar’s mouth visually respond ภายใน one animation frame ของ audio - ซึ่ง indistinguishable จาก simultaneous ไปยัง observers audio เอง อาจ 80ms delayed (AI mode) แต่นั่นคือ delay เดียวกัน observers perceive ในทั้ง sound และ animation ดังนั้น พวกเขา stay ใน sync
Comparison: Voice Changer Approaches สำหรับ VRChat OSC
| Approach | Audio Quality | OSC Integration | Latency | Setup Complexity |
|---|---|---|---|---|
| VoxBooster + OSC bridge script | High (AI model available) | ใช่ via bridge | 80ms AI / <10ms DSP | Medium - ต้อง Python script |
| Voicemod + OSC bridge script | Medium (DSP only) | ใช่ via bridge | <10ms | Medium - bridge approach เดียวกัน |
| MorphVOX + OSC bridge | Low-medium | ใช่ via bridge | <15ms | Medium |
| VRChat built-in viseme only | N/A (unmodified voice) | Native no bridge | <5ms | Zero |
| Face tracker (เช่น VRCFaceTracking) | N/A (audio separate) | Native no bridge | 15-30ms | High - hardware ต้อง |
OSC bridge approach ทำงาน กับ any voice changer ที่ expose virtual mic output ความแตกต่าง ระหว่าง tools เป็น audio quality และ ว่า AI voice model inference ที่พร้อมให้ใช้ - ซึ่ง เป็น where VoxBooster’s local model pipeline differ จาก DSP-only tools เช่น Voicemod และ MorphVOX
Common Issues และ Fixes
VRChat ไม่ได้รับ OSC Messages
ตรวจสอบ เหล่านี้ ใน order:
- ยืนยัน OSC enabled ใน VRChat’s Action Menu → Options → OSC → Enabled
- ยืนยัน listening port คือ 9000 (Action Menu → Options → OSC → Port)
- ยืนยัน firewall ไม่มี rule blocking UDP localhost traffic - Windows Firewall บางครั้ง blocks Python applications on first run
- ยืนยัน bridge script’s target port match VRChat’s listening port
- Restart VRChat หลังจาก enabling OSC - บาง VRChat builds ต้อง restart สำหรับ OSC ไปยัง initialize
Avatar Parameters ไม่ Responding
OSC writes ไปยัง parameters เพียง work ถ้า:
- Avatar มี parameters เหล่านั้น defined ใน VRChat Avatar Descriptor ของมัน
- Parameters set ไปยัง “Allow OSC” ใน descriptor’s parameter list
- Animator layer มี transitions wired ไปยัง parameters เหล่านั้น
ถ้าคุณ downloaded community avatar และ parameters ไม่ responding avatar อาจ predate VRChat’s OSC support หรือ อาจ ไม่มี Stream Avatar System layer ตรวจสอบ avatar’s documentation หรือ import มัน ลงใน Unity ด้วย VRChat SDK ไปยัง verify parameter definitions
Voice Changer Audio ตัดออก ใน VRChat
ดัง noted ใน audio chain section VRChat’s noise gate สามารถ ตัด heavily compressed หรือ normalized voice changer output Solutions:
- Reduce VRChat’s microphone gate threshold
- ใน VoxBooster reduce output compression ratio (lighter compression = more dynamic range = clearer gate signal)
- ตรวจสอบ VoxBooster’s output level calibrated ดังนั้น normal speech peaks around -12 ไปยัง -6 dBFS
Bridge Script เลือก Wrong Audio Device
ถ้า sounddevice อ่าน จาก physical microphone ของคุณ แทน VoxBooster’s virtual output device name ใน script ไม่ match Windows ใช้ sd.query_devices() ไปยัง list all devices และ copy exact string สำหรับ VoxBooster’s virtual mic
VRChat OSC Voice ใน Context ของ Other Social VR Platforms
VRChat เป็น first major social VR platform ไปยัง implement OSC เป็น first-party feature แต่ concept spreading ถ้าคุณ build experience ด้วย VRChat OSC voice setup principles เดียวกัน apply elsewhere:
- Resonite ใช้ node-graph-based scripting system ที่ audio input สามารถ drive avatar parameters ด้วย similarity expressiveness - ดู Resonite node graph voice guide ของเรา สำหรับวิธี workflow translate
- ChilloutVR ถ่ายทำ OSC parameter input สำหรับ compatible avatars และ ใช้ routing architecture คล้าย VRChat - ChilloutVR voice routing guide ของเรา covers platform’s specifics
- General streaming setups benefit จาก virtual mic chain เดียวกัน - ดู voice changer for live streaming ถ้าคุณ also running OBS หรือ stream alongside VRChat
OSC bridge script ที่คุณ write สำหรับ VRChat จะ ทำงาน บน any platform ที่ถ่ายทำ OSC parameter input ด้วย minimal changes (มักจะ เพียง port number และ parameter name mapping)
Advanced: ส่ง VoicePitch via OSC สำหรับ Expression Control
ถ้า avatar’s Stream Avatar System layer รวม VoicePitch Float parameter (ไม่มี all ทำ) คุณสามารถ extend bridge ไปยัง ส่ง approximate pitch data ที่ accurate real-time pitch detection ต้อง fundamental frequency estimator - basic approach ใช้ autocorrelation:
[Python code section - see English version above]
นี่คือ accurate พอ สำหรับ expression control (distinguishing “high excited speech” จาก “low calm speech”) แต่ ไม่ accurate พอ สำหรับ musical applications สำหรับ purposes ของ driving facial expression blendshapes coarse approximation คือ exactly right - คุณต้องการ smooth latency-tolerant signal ไม่ precise pitch tracker
สำหรับ VTubers interested ใน how AI voice processing interact กับ content creation workflows more broadly AI voice cloning for voiceover guide ของเรา covers model training และ inference ใน depth และ voice changer for roleplay guide ไป ลงใน character consistency techniques ที่ translate directly ไปยัง long VRChat sessions
Frequently Asked Questions
VRChat OSC คืออะไร และมันทำงานกับ voice changer อย่างไร
VRChat OSC (Open Sound Control) เป็น built-in protocol ที่ให้แอปพลิเคชันภายนอก ส่ง real-time data ไปยัง VRChat - รวม avatar parameters chatbox text และ input actions voice changer ที่รวมกับ OSC สามารถอ่าน mic audio level หรือ key events และ push parameter values ลงใน VRChat เพื่อให้ avatar animations ตอบสนอง voice ของคุณในการทำงานพร้อมกัน
ฉันสามารถใช้ VRChat OSC เพื่อเรียกใช้ avatar emotes ด้วยเสียงของฉันได้หรือไม่
ใช่ ด้วยสคริปต์ bridge OSC คุณสามารถยิง Bool หรือ Float avatar parameters เมื่อใด voice changer ของคุณ detect phoneme volume threshold หรือ pressed hotkey VRChat interpret parameters เหล่านั้น ใน avatar’s Animator layer และเล่น mapped emote หรือ expression transition
Voice changer ต้องการ special drivers เพื่อทำงานกับ VRChat OSC หรือไม่
ไม่ voice changer จัดการ audio ที่ Windows low-latency audio capture layer OSC messaging ทำงาน over UDP บน localhost port 9000 พวกเขาเป็น completely separate channels - voice changer ส่ง processed audio ไปยัง VRChat’s mic input ขณะที่ OSC sender script ส่ง parameter data ไปยัง VRChat over UDP ไม่มี drivers ที่พิเศษจำเป็นสำหรับ either
Stream Avatar System ใน VRChat คืออะไร และมันเชื่อมต่อกับ mic routing อย่างไร
Stream Avatar System เป็น VRChat community standard ที่แมป OSC float parameters เช่น VoiceVolume VoicePitch และ VoiceActivity ไปยัง viseme และ expression blendshapes ใน avatar rigs built ไปยัง spec นั้น เมื่อ OSC bridge ของคุณ feed parameters เหล่านั้น ใน real-time avatar’s mouth brows และ body animations ตอบสนอง continuous ไปยัง live mic ของคุณ ให้ face-tracked quality โดยไม่มี face tracker
การใช้ OSC ด้วย voice changer จะ get me banned ใน VRChat หรือไม่
ไม่ VRChat explicitly ถ่ายทำ OSC เป็น first-party feature ตั้งแต่ OSC update ใน 2022 การส่ง OSC messages เพื่อควบคุม avatar parameters ของคุณเอง คือ intended use case ไม่มี voice changer processing หรือ OSC messaging touches game memory หรือ violate VRChat’s Terms of Service
VRChat OSC listen บน port ใด โดยค่าเริ่มต้น
VRChat ได้รับ OSC บน UDP port 9000 โดยค่าเริ่มต้น ส่งจาก port 9001 ถ้าแอปพลิเคชันอื่นบน machine ของคุณ already uses port 9000 คุณสามารถ change listening port ใน VRChat’s Action Menu ภายใต้ OSC Settings OSC sender script ของคุณต้อง match whichever port ที่คุณ set
Voice changers ที่คุณสมบัติ VRChat OSC integration natively
ตั้งแต่กลาง-2026 ไม่มี major commercial voice changer ships built-in VRChat OSC bridge - Voicemod MorphVOX และ Voice.ai ทั้งหมด lack feature นี้ Integration ทำได้โดย lightweight Python หรือ Node.js bridge scripts ที่ read mic data จาก voice changer’s virtual output และ forward OSC messages ไปยัง VRChat VoxBooster’s virtual microphone output compatible ด้วย any such bridge
Conclusion
combination ของ vrchat osc voice changer setup ด้วย Stream Avatar System คือ practical ceiling ของ what social VR voice integration ลักษณะ right now - short ของ full face tracking hardware audio channel delivers character voice OSC channel ทำให้ avatar animate ในการตอบสนองต่อมัน together พวกเขา produce avatar presence ที่ passive audio routing เพียง สามารถ achieve
Setup more involved กว่า basic voice changer install แต่ components เป็น small: voice changer จัดการ audio (VoxBooster) 40-line Python bridge script จัดการ OSC และ OSC-ready avatar bridge script ทำงาน silently ใน background และ ใช้ negligible system resources เมื่อ it’s running
ถ้าคุณต้อง extend นี่ เข้าไป full VTuber หรือ streaming setup VoxBooster covers audio processing side - AI voice models DSP presets soundboard macros และ noise suppression - บน standard Windows virtual mic ด้วย 3-day free trial เมื่อ audio handled OSC bridge wires up ใน minutes และ avatar starts reacting
ดาวน์โหลด VoxBooster - ทดลองใช้ฟรี 3 วัน ไม่ต้องใช้บัตรเครดิต