Comment toujours utiliser le microphone MacBook avec Bose QuietComfort 35?

30

J'ai un casque antibruit (Bose QC 35), qui a également un microphone intégré. Si le microphone est actif, la suppression du bruit ne fonctionne pas, ils ne font que traverser les sons ambiants (c'est par conception. Je suppose qu'ils l'ont fait pour que vous ne sentiez pas que vous êtes dans le "vide" lorsque vous parlez) .

Quoi qu'il en soit, le problème est que chaque fois que je connecte mes écouteurs à macOS, le système passe du microphone interne à celui des écouteurs. Par conséquent, la suppression du bruit ne fonctionne pas, sauf si je vais dans les paramètres système et que je remets le microphone sur celui interne.

C'est très ennuyeux, d'autant plus que je dois le faire à chaque fois que je connecte un casque.

Existe-t-il un moyen de forcer macOS à toujours utiliser le microphone interne ou à ne pas utiliser celui du casque spécifique?

Mise à jour du 10/2017:

J'ai donc découvert que "le microphone du casque est utilisé" ne se produit que lorsque Skype est en cours d'exécution. Mais depuis que j'ai cessé d'utiliser Skype (ou de le faire fonctionner tout le temps), le problème avait disparu!

Ce n'est pas la solution à la question d'origine, je la laisse juste ici pour la future référence.

kovpas
la source
Comment connectez-vous vos écouteurs via Bluetooth? Si oui, à quoi cela ressemble-t-il dans les préférences Bluetooth, comme un seul appareil ou comme paire de deux appareils, casque + microphone?
toma
@toma le Bose QC 35 est un casque sans fil, mais il peut également être utilisé via le connecteur téléphonique
northsea
@northsea comme je peux le voir sur le site officiel, ce casque prend en charge les deux interfaces, bluetooth et fil audio. donc si vous les connectez via Bluetooth, comment sont-ils affichés dans les préférences BT? bose.com/en_us/products/headphones/over_ear_headphones/…
toma
@toma Je les utilise via Bluetooth, oui. Ils sont présentés comme des écouteurs.
kovpas
4
Ce n'est pas une solution réelle, mais vous pouvez rapidement changer de source d'entrée en maintenant Optionenfoncée et en cliquant sur l'icône Son dans votre barre de menu, puis en sélectionnant une source d'entrée dans la liste. C'est un peu plus rapide que d'utiliser les Préférences Système, au moins.
aaplmath

Réponses:

6

Je ne sais pas à quel point c'est pratique (je n'ai pas eu la chance de mesurer l'utilisation du processeur, etc.), mais l'AppleScript ci-dessous fera l'affaire - remplacez-le simplement [YOUR HEADPHONES' NAME]par le nom réel de votre casque. Il s'agit d'une version modifiée d'un script à partir d'un fil Apple Support Communities .

Enregistrez le script ci-dessous en tant qu'application, exécutez-le et ajoutez-le à vos éléments de démarrage - il devrait s'exécuter en continu en arrière-plan.

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

Vous pouvez jouer avec le temps entre les vérifications (la ligne avec le commentaire for 5 second checks) pour réduire la consommation de ressources.

Il existe un certain nombre de nouvelles API (en particulier dans AVFoundation) arrivant sur macOS High Sierra qui permettraient une solution beaucoup plus propre à ce problème. Si vous êtes à l'aise avec Swift ou Objective-C (ou le pont de script Cocoa dans AppleScript et JXA), je chercherais à utiliser ces API au lieu de ce script une fois que High Sierra sera publié. En particulier, le Guide de programmation de session audio d'Apple et ce post Stack Overflow montrent certaines techniques de détection des connexions Bluetooth à l'aide AVAudioSession.

aaplmath
la source
Ouais, ça ressemble à un compromis décent. Je suis vraiment déçu que Bose ne puisse toujours pas proposer un bon support de leur produit sur Sierra ... Jusque-là, il semble que je devrais utiliser des solutions de contournement comme celle-ci :(. Merci!
kovpas
@aaplmath Le script est vraiment intéressant ... et j'aime vraiment cette suggestion à la fin de votre message. Écrire une application de barre de menus (ou sans tête) qui surveille la session audio et toujours redirige vers le microphone interne serait un projet amusant à travailler et pourrait être un peu plus robuste ... (peut-être) Mais quand même, j'aime bien la version AppleScript parce que c'est quelque chose que n'importe qui pourrait utiliser aujourd'hui. Merci!
Evan Stone
18

J'aime toujours vraiment la suggestion de @ aaplmath (et c'est peut-être la meilleure à l'avenir), mais je suis également tombé sur cette solution qui ne nécessite aucun codage (AppleScript / Swift / ObjC / Other) dans High Sierra, et c'est super facile à configurer .

Veuillez noter que la réponse était dans la section commentaire de l'article et que cela semble fonctionner sur High Sierra (je suis sur 10.13.6), mais je ne sais pas si cela fonctionne sur Mojave et au-delà.

Ouvrez l'utilitaire standard "Audio MIDI Setup.app" et cliquez sur le + en bas pour créer un périphérique agrégé. Sélectionnez ensuite le microphone interne comme seul composant de ce périphérique agrégé et sélectionnez-le comme entrée par défaut. Pour une raison quelconque, cela empêche Mac OS X de sélectionner le microphone Bluetooth à partir de maintenant et il restera sur le microphone interne lorsque vous vous reconnecterez.

Après avoir créé cette entrée agrégée, accédez à vos préférences système habituelles -> Son -> Entrée (onglet)

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

Evan Stone
la source
J'avais aussi des problèmes avec Bose QC 35 ii. Cette solution fonctionne parfaitement. Je vous remercie.
Charles Han
Cela fonctionne également avec les écouteurs audiomx.
Danny Staple
Ne semble pas fonctionner sur macOS Catalina. Mes AirPods v2 redeviennent le micro principal, et l'agrégation nouvellement créée ne semble rien bloquer: '(
MoOx
Cela fonctionne à Mojave, et je n'ai pas encore installé Catalina. Apple a probablement changé quelque chose qui fait que cela ne fonctionne pas maintenant ... très décevant. Bon à savoir que c'est la fin de la route si c'est le cas ... Il semble également que Catalina présente le problème d'origine, et si c'est le cas, c'est aussi très décevant.
Evan Stone
6

J'ai ce problème lors de l'utilisation du simulateur iOS et il émet n'importe quel son, comme à partir d'un clavier. Le commutateur de mon Bose 35 vers un flux audio de qualité inférieure et tout sonne horriblement.

À partir d'autres résultats de recherche, j'ai constaté que le passage au microphone interne de mon Mac résout le problème. Sur la base de cette question, j'ai réalisé que je ne serais peut-être pas en mesure de définir les paramètres de mon Mac, mais je peux les définir pour mon simulateur iOS.

Simulateur iOS: Matériel -> Entrée audio -> Microphone interne

Michael Ozeryansky
la source
-2

Si vous utilisez vos écouteurs via un câble au lieu de Bluetooth, la solution la plus simple devrait être d'utiliser un câble avec une prise téléphonique TRS (Tip + Ring + Sleeve) au lieu d'une prise téléphonique TRRS (Tip + Ring + Ring + Sleeve). La prise téléphonique TRS ne prend en charge que le signal stéréo, mais pas de microphone. Ainsi, aucun signal de microphone ne sera transmis et le microphone intégré doit rester actif.

la mer du Nord
la source
1
Non, je les utilise via Bluetooth. Le sans fil était la principale raison de les acheter en premier lieu :)
kovpas