Skip to content

teamclouday/AndroidMic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android Microphone

Use your Android phone as a microphone to Windows PC


Requirements

  • Android phone with bluetooth/wifi
  • Windows PC with bluetooth/wifi
  • Installed Virtual Audio Cable (VAC) on Windows, will hear "trial" voice if your driver is in trial mode
    Also try using VB-Audio as alternative now since it is completely free

How to use

Config Audio Device
  1. Run Windows side app
  2. Select audio speaker from drop down list to the one that VB created
    sound config1
  3. Use the corresponding microphone created by VB
    sound config2
  4. In Properties of both, make sure both set default format to following:
    sound config4
  5. For speaker, click Configure Speakers and set channel to Mono:
    sound config3
  6. For microphone, click Properties and set following:
    sound config5

On my machine, this setup has the lowest delay and best sound quality.
Can further improve audio latency by opening VBCABLE_ControlPanel.exe (from downloaded folder of VB) and set Max Latency in Options to 2048 smp:
sound config6

Do not set to 512 smp since that will cause most buffers lost. If 2048 has no sound or bad quality, consider a higher smp.

Volume Control
  1. Run Windows side app
  2. Drag slider to control volume
Connection: Bluetooth
  1. Make sure PC and phone are paired once
  2. Check Bluetooth button on Windows app
  3. Click Connect on Windows app to start server
  4. Click Connect on Android app to connect
  5. Tap Record Audio on Android app to start transferring audio
Connection: Wifi / LAN
  1. Make sure PC and phone are under the same network
    1. Can be under the same router with Wifi
    2. Can have PC connected to ethernet of the same router
    3. Can have PC connected to phone by cable and enable USB tethering on phone
  2. Click Connect on Windows app to start server
  3. Click Connect on Android app to connect
  4. Enter IP and Port (displayed on Windows side) on Android app
  5. Tap Record Audio on Android app to start transferring audio
Advanced Filters
  1. Run Windows side app
  2. Connect phone to app
  3. Click Advanced Effects to open advanced settings window
  4. Expand a filter and check enabled to test effects

Pitch Shifter:

  • Slider controls pitch shift factor

White Noise:

  • Slider controls the noise strength

Repeat Track:

  • Check Repeat to enable looped audio track
  • Slider controls audio track volume strength
  • Select File to select an audio file to play

SpeexDSP Filters:

  • Check corresponding filters to enable/disable
  • If Echo Cancellation does not work (your friend hears echo from your speaker)
    Try re-enable echo cancellation to restart cancellation state
    Echo Cancellation may take a while (5-10s) to optimize

Rnnoise Filter:

  • Check "Noise Cancellation" and try

Feature Plans

  • Windows app can minimize to system tray
  • Volume control on Windows side
  • Audio visualization on Windows side
  • Show notification when mic is in use on Android side
  • Audio effect filters
    • Pitch Shifter
    • Add White Noise
    • Repeated Background Audio
    • SpeexDSP Noise Cancellation
    • SpeexDSP Automatic Gain Control
    • SpeexDSP Voice Activity Detection
    • SpeexDSP Echo Cancellation
    • Rnnoise Noise Cancellation
  • Memorized user settings
  • Select network adapter in Wifi/LAN mode
  • Port all Windows code & dependencies to .Net Core (with Avalonia)
    • MacOS Support
    • Linux Support

Optimization Plans

To further reduce latency, here're the possible areas to optimize:

  • Use Oboe audio library
  • Improve NAudio filters
  • Use modern NAudio WASAPI player (no more Windows XP / lower support)
  • Garbage Collection friendly buffers on Android Kotlin
  • Garbage Collection friendly buffers on Windows C#
  • Threads / Coroutines priority level
  • Profile and analyze hot code paths on each

Releases

Pre-built installers can be found here


Windows Side

Windows Side Windows Side

Android Side

Android Side

Android Side

Android Side