¿Cómo usar siempre el micrófono de macbook con Bose QuietComfort 35?

Tengo auriculares con cancelación de ruido (Bose QC 35), que también tienen micrófono incorporado. Si el micrófono está activo, la cancelación de ruido no funciona, solo pasan a través de los sonidos ambientales (esto es por diseño. Supongo que lo hicieron para que no sintiera que está en un "vacío" cuando está hablando) .

De todos modos, el problema es que cada vez que conecto mis auriculares a macOS, el sistema cambia del micrófono interno al de los auriculares. Por lo tanto, la cancelación de ruido no funciona, a menos que vaya a la configuración del sistema y vuelva a cambiar el micrófono al interno.

Esto es muy molesto, especialmente considerando que tengo que hacer eso cada vez que conecto los auriculares.

¿Hay alguna forma de obligar a macOS a usar siempre el micrófono interno o no usar el de los auriculares específicos?

Actualización del 10/2017:

Así que descubrí que "se está usando el micrófono de los auriculares" solo sucede cuando se está ejecutando Skype. Pero desde que dejé de usar Skype (o de tenerlo funcionando todo el tiempo), ¡el problema desapareció!

Esta no es la solución para la pregunta original, solo la dejo aquí para futuras referencias.

¿Cómo se conectan los auriculares, a través de Bluetooth? En caso afirmativo, ¿cómo se ve en las Preferencias de Bluetooth, como un solo dispositivo o como un par de dos dispositivos, auriculares + micrófono?
@toma el Bose QC 35 es un auricular inalámbrico, pero también se puede usar a través del conector del teléfono
@northsea, como puedo ver en el sitio web oficial, estos auriculares admiten ambas interfaces, bluetooth y cable de audio. Entonces, si los conecta a través de Bluetooth, ¿cómo se muestran en las preferencias de BT? bose.com/en_us/products/headphones/over_ear_headphones/…
@toma los estoy usando por bluetooth, si. Se muestran como auriculares.
Esta no es una solución real, pero puede cambiar rápidamente las fuentes de entrada manteniendo Optionpresionado y haciendo clic en el ícono de Sonido en su barra de menú, luego seleccionando una fuente de entrada de la lista. Es un poco más rápido que usar las Preferencias del Sistema, al menos.

Respuestas (5)

No estoy seguro de cuán práctico es esto (no he tenido la oportunidad de medir el uso de la CPU, etc.), pero el siguiente AppleScript hará el trabajo, simplemente reemplácelo [YOUR HEADPHONES' NAME]con el nombre real de sus auriculares. Esta es una versión modificada de un script de un hilo de Apple Support Communities .

Guarde el siguiente script como una aplicación, ejecútelo y agréguelo a sus elementos de inicio; debería ejecutarse continuamente en segundo plano.

repeat
    set statusOld to checkStatus()
    set statusNew to checkStatus()
    repeat while statusOld is equal to statusNew
        delay 5 --for 5 second checks
        set statusNew to checkStatus()
    end repeat
    if statusNew is true then
        tell application "System Preferences" to activate
        tell application "System Preferences"
            reveal anchor "input" of pane id "com.apple.preference.sound"
        end tell
        delay 0.5
        tell application "System Events" to tell process "System Preferences"
            tell table 1 of scroll area 1 of tab group 1 of window 1
                select (row 1 where value of text field 1 is "Internal Microphone")
            end tell
        end tell
        tell application "System Preferences" to quit
    else
        -- Nothing needs to happen, the device was removed
    end if
end repeat

on checkStatus()
    set bluetoothDeviceName to "[YOUR HEADPHONES' NAME]"
    set myString to do shell script "system_profiler SPBluetoothDataType"

    --initial check if it's not even there
    if myString does not contain bluetoothDeviceName then
        return false
    else

        --find out if connected/disconnected
        set AppleScript's text item delimiters to "name:"
        set myList to the text items of myString --each item of mylist is now one of the devices

        set numberOfDevices to count of myList
        set counter to 1
        repeat numberOfDevices times --loop through each devices checking for Connected string
            if item counter of myList contains bluetoothDeviceName then
                if item counter of myList contains "Connected: Yes" then
                    return true
                else if item counter of myList contains "Connected: No" then
                    return false
                else
                    display dialog "Something went wrong with the script" --this shouldn't happen
                end if
            end if
            set counter to counter + 1
        end repeat
    end if
end checkStatus

Podría jugar con el tiempo entre comprobaciones (la línea con el comentario for 5 second checks) para reducir el consumo de recursos.

Hay una serie de nuevas API (especialmente en AVFoundation) que llegarán a macOS High Sierra que permitirían una solución mucho más limpia a este problema. Si se siente cómodo con Swift u Objective-C (o el puente de secuencias de comandos Cocoa en AppleScript y JXA), consideraría usar esas API en lugar de esta secuencia de comandos una vez que se publique High Sierra. En particular, la Guía de programación de sesiones de audio de Apple y esta publicación de Stack Overflow muestran algunas técnicas para detectar conexiones Bluetooth usando AVAudioSession.

Sí, parece un compromiso decente. Estoy realmente decepcionado de que Bose todavía no pueda encontrar un buen soporte para su producto en Sierra... Hasta entonces, parece que tendría que usar soluciones como esta :(. ¡Gracias!
@aaplmath El guión es realmente interesante... y me gusta mucho esa sugerencia al final de tu publicación. Escribir una aplicación de barra de menú (o sin interfaz) que monitoree la sesión de audio y siempre redirija al micrófono interno sería un proyecto divertido en el que trabajar y podría ser un poco más sólido... (tal vez) Pero aun así, me gusta la versión de AppleScript porque es algo que cualquiera podría usar hoy. ¡Gracias!

Todavía me gusta mucho la sugerencia de @aaplmath (y esa puede ser la mejor en el futuro), pero también me topé con esta solución que no requiere codificación (AppleScript/Swift/ObjC/Other) en High Sierra, y es muy fácil de configurar .

Tenga en cuenta que la respuesta estaba en la sección de comentarios del artículo y parece funcionar en High Sierra (estoy en 10.13.6), pero no sé si esto funciona en Mojave y más allá.

Abra la utilidad estándar "Audio MIDI Setup.app" y haga clic en + en la parte inferior para crear un dispositivo agregado. Luego, seleccione el micrófono interno como el único componente en este dispositivo agregado y selecciónelo como la entrada predeterminada. Por alguna razón, esto impide que Mac OS X seleccione el micrófono Bluetooth a partir de ahora y permanecerá en el interno cuando se vuelva a conectar.

Después de crear esa entrada agregada, vaya a sus Preferencias del sistema habituales -> Sonido -> Entrada (pestaña)

Fuente: http://ssrubin.com/posts/fixing-macos-bluetooth-headphone-audio-quality-issues-with-hammerspoon.html#comment-4018174387

También estaba teniendo problemas con Bose QC 35 ii. Esta solución funciona perfectamente. Gracias.
Esto también funciona con auriculares audiomx.
No parece funcionar en macOS Catalina. Mis AirPods v2 vuelven a ser el micrófono principal y la agregación recién creada no parece bloquear nada :'(
Funciona en Mojave y todavía no tengo instalado Catalina. Apple probablemente cambió algo que hace que esto no funcione ahora... muy decepcionante. Es bueno saber que este es el final del camino si ese es el caso... Sin embargo, también parece que Catalina exhibe el problema original, y si es así, eso también es muy decepcionante.
Esto funcionó muy bien para mí en Catalina. Cuando elijo MacBook Pro Microphoney conecto mis auriculares BT, el micrófono cambia a los auriculares BT, pero cuando elijo el dispositivo agregado MIDI y conecto los auriculares BT, permanece con el dispositivo agregado MIDI.
¡Gorrón! Si bien el valor predeterminado en el nivel del sistema operativo sigue siendo el mismo, Google Meet (que es lo que más uso) prefiere usar el mismo dispositivo para los altavoces y el micrófono, por lo que no respeta el valor predeterminado del sistema operativo.

Tengo este problema cuando uso el simulador de iOS y hace algún sonido, como el de un teclado. El cambio de mi Bose 35 a una transmisión de audio de menor calidad y todo suena horrible.

A partir de otros resultados de búsqueda, descubrí que cambiar al micrófono interno de mi Mac soluciona el problema. En base a esta pregunta, me di cuenta de que es posible que no pueda establecer la configuración para mi Mac, pero puedo configurarla para mi simulador de iOS.

Simulador de iOS: Hardware -> Entrada de audio -> Micrófono interno

Esto me paso en BigSur y es lo peor! No pude descifrar e intenté todo aquí, sin resultados. Lo que funcionó para mí fue ir a las preferencias de la aplicación Zoom seleccionando el micrófono interno del Bose QC 35 predeterminado y bingo, sin audio de mala calidad.

Si usa sus auriculares a través de cable en lugar de bluetooth, la solución más simple debería ser usar un cable con un conector telefónico TRS (Tip + Ring + Sleeve) en lugar de un conector telefónico TRRS (Tip + Ring + Ring + Sleeve). El conector de teléfono TRS solo admite señal estéreo, pero no micrófono. Por lo tanto, no se transmitirá ninguna señal de micrófono y el micrófono incorporado debería permanecer activo.

No, los estoy usando por bluetooth. Wireless fue la razón principal para comprarlos en primer lugar :)