Wie verwende ich das Macbook-Mikrofon immer mit Bose QuietComfort 35?

Ich habe Kopfhörer mit Geräuschunterdrückung (Bose QC 35), die auch ein Mikrofon eingebaut haben. Wenn das Mikrofon aktiv ist, funktioniert die Geräuschunterdrückung nicht, sie lassen nur Umgebungsgeräusche durch (dies ist beabsichtigt. Ich nehme an, sie haben es getan, damit Sie nicht das Gefühl haben, im „Vakuum“ zu sein, wenn Sie sprechen) .

Wie auch immer, das Problem ist, dass, wenn ich meine Kopfhörer an macOS anschließe, das System vom internen Mikrofon zum Kopfhörer umschaltet. Daher funktioniert die Geräuschunterdrückung nicht, es sei denn, ich gehe zu den Systemeinstellungen und schalte das Mikrofon wieder auf das interne um.

Das ist sehr nervig, vor allem wenn man bedenkt, dass ich das jedes Mal machen muss, wenn ich Kopfhörer anschließe.

Gibt es eine Möglichkeit, macOS zu zwingen, immer das interne Mikrofon zu verwenden, oder nicht das spezielle Kopfhörermikrofon zu verwenden?

Update von 10/2017:

Also habe ich herausgefunden, dass "Kopfhörermikrofon wird verwendet" nur passiert, wenn Skype läuft. Aber seit ich aufgehört habe, Skype zu benutzen (oder es ständig laufen zu lassen), war das Problem weg!

Dies ist nicht die Lösung für die ursprüngliche Frage, ich lasse sie hier nur für die zukünftige Referenz.

Wie verbindest du deine Kopfhörer über Bluetooth? Wenn ja, wie sieht es in den Bluetooth-Einstellungen aus, als einzelnes Gerät oder als Paar aus zwei Geräten, Kopfhörer + Mikrofon?
@toma Das Bose QC 35 ist ein kabelloses Headset, kann aber auch per Telefonanschluss verwendet werden
@northsea Wie ich auf der offiziellen Website sehen kann, unterstützt dieser Kopfhörer beide Schnittstellen, Bluetooth und Audiokabel. Wenn Sie sie also über Bluetooth verbinden, wie werden sie in den BT-Einstellungen angezeigt? bose.com/en_us/products/headphones/over_ear_headphones/…
@toma Ich benutze sie über Bluetooth, ja. Sie werden als Kopfhörer angezeigt.
Dies ist keine wirkliche Lösung, aber Sie können die Eingangsquellen schnell wechseln, indem OptionSie das Sound-Symbol in Ihrer Menüleiste gedrückt halten und darauf klicken und dann eine Eingangsquelle aus der Liste auswählen. Es ist zumindest etwas schneller als die Verwendung der Systemeinstellungen.

Antworten (5)

Ich bin mir nicht sicher, wie praktisch das ist (ich hatte keine Gelegenheit, die CPU-Auslastung usw. zu messen), aber das folgende AppleScript erledigt die Aufgabe – ersetzen Sie es einfach durch [YOUR HEADPHONES' NAME]den tatsächlichen Namen Ihrer Kopfhörer. Dies ist eine modifizierte Version eines Skripts aus einem Thread der Apple Support Communities .

Speichern Sie das folgende Skript als Anwendung, führen Sie es aus und fügen Sie es zu Ihren Startelementen hinzu – es sollte kontinuierlich im Hintergrund ausgeführt werden.

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

Sie könnten mit der Zeit zwischen den Überprüfungen spielen (die Zeile mit dem Kommentar for 5 second checks), um den Ressourcenverbrauch zu reduzieren.

Es gibt eine Reihe neuer APIs (insbesondere in AVFoundation) für macOS High Sierra, die eine viel sauberere Lösung für dieses Problem ermöglichen würden. Wenn Sie mit Swift oder Objective-C (oder der Cocoa-Skriptbrücke in AppleScript und JXA) vertraut sind, würde ich prüfen, ob Sie diese APIs anstelle dieses Skripts verwenden, sobald High Sierra veröffentlicht wird. Insbesondere Apples Audio Session Programming Guide und dieser Stack Overflow-Beitrag zeigen einige Techniken zum Erkennen von Bluetooth-Verbindungen mit AVAudioSession.

Ja, sieht nach einem guten Kompromiss aus. Ich bin wirklich enttäuscht, dass Bose immer noch keine gute Unterstützung für ihr Produkt auf Sierra bieten kann ... Bis dahin muss ich wohl Workarounds wie diese verwenden :(. Danke!
@aaplmath Das Skript ist wirklich interessant ... und ich mag diesen Vorschlag am Ende Ihres Beitrags sehr. Eine Menüleisten-App (oder Headless-Anwendung) zu schreiben, die die Audiositzung überwacht und immer zum internen Mikrofon umleitet, wäre ein lustiges Projekt, an dem man arbeiten könnte, und es könnte etwas robuster sein ... (vielleicht) Aber trotzdem gefällt es mir die AppleScript-Version, weil es etwas ist, das heute jeder verwenden könnte. Vielen Dank!

Ich mag den Vorschlag von @aaplmath immer noch sehr (und das ist vielleicht der beste für die Zukunft), aber ich bin auch gerade über diese Lösung gestolpert, die keine Codierung (AppleScript/Swift/ObjC/Other) in High Sierra erfordert und super einfach zu konfigurieren ist .

Bitte beachten Sie, dass die Antwort im Kommentarbereich des Artikels stand und auf High Sierra zu funktionieren scheint (ich bin auf 10.13.6), aber ich weiß nicht, ob dies auf Mojave und darüber hinaus funktioniert.

Öffnen Sie das Standarddienstprogramm „Audio MIDI Setup.app“ und klicken Sie unten auf das +, um ein Aggregate Device zu erstellen. Wählen Sie dann das interne Mikrofon als einzige Komponente in diesem Aggregatgerät und als Standardeingang aus. Aus irgendeinem Grund verhindert dies von nun an, dass Mac OS X das Bluetooth-Mikrofon auswählt, und es bleibt beim erneuten Verbinden auf dem internen Mikrofon.

Nachdem Sie diese aggregierte Eingabe erstellt haben, gehen Sie zu Ihren üblichen Systemeinstellungen -> Ton -> Eingabe (Registerkarte)

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

Ich hatte auch Probleme mit Bose QC 35 ii. Diese Lösung funktioniert einwandfrei. Danke dir.
Dies funktioniert auch mit audiomx-Kopfhörern.
Scheint unter macOS Catalina nicht zu funktionieren. Meine AirPods v2 werden wieder zum Hauptmikrofon und die neu erstellte Aggregation scheint nichts zu blockieren :'(
Es funktioniert in Mojave, und ich habe Catalina noch nicht installiert. Apple hat wahrscheinlich etwas geändert, wodurch dies jetzt nicht funktioniert ... sehr enttäuschend. Gut zu wissen, dass dies das Ende der Straße ist, wenn das der Fall ist ... Es klingt jedoch auch so, als hätte Catalina das ursprüngliche Problem, und wenn ja, ist das auch sehr enttäuschend.
Bei Catalina hat das bei mir sehr gut funktioniert. Wenn ich MacBook Pro Microphonemein BT-Headset auswähle und anschließe, wechselt das Mikrofon zum BT-Headset, aber wenn ich das MIDI-Aggregatgerät wähle und das BT-Headset anschließe, bleibt es beim MIDI-Aggregatgerät.
Schade! Während die Standardeinstellung auf Betriebssystemebene gleich bleibt, bevorzugt Google Meet (was ich meistens verwende) die Verwendung desselben Geräts für Lautsprecher und Mikrofon und respektiert daher nicht die Standardeinstellung des Betriebssystems.

Ich habe dieses Problem, wenn ich den iOS-Simulator verwende und er macht irgendwelche Geräusche, wie von einer Tastatur. Meine Bose 35 wechseln zu einem Audiostream mit geringerer Qualität und alles klingt schrecklich.

Aus anderen Suchergebnissen habe ich herausgefunden, dass das Umschalten auf das interne Mikrofon meines Mac das Problem behebt. Basierend auf dieser Frage wurde mir klar, dass ich die Einstellung möglicherweise nicht für meinen Mac festlegen kann, aber ich kann sie für meinen iOS-Simulator festlegen.

iOS-Simulator: Hardware -> Audioeingang -> Internes Mikrofon

Das ist mir auf BigSur passiert und es ist das Schlimmste! Ich konnte es nicht herausfinden und habe hier alles versucht, keine Ergebnisse. Was für mich funktioniert hat, war, in die Zoom-App-Einstellungen zu gehen und das interne Mikrofon aus dem Standard-Bose QC 35 und Bingo auszuwählen, kein beschissenes Audio.

Wenn Sie Ihre Kopfhörer über Kabel anstelle von Bluetooth verwenden, sollte die einfachste Lösung darin bestehen, ein Kabel mit einer TRS-Klinkenbuchse (Tip + Ring + Sleeve) anstelle einer TRRS-Klinkenbuchse (Tip + Ring + Ring + Sleeve) zu verwenden. Die TRS-Klinkenbuchse unterstützt nur Stereosignale, aber kein Mikrofon. Somit wird kein Mikrofonsignal übertragen und das eingebaute Mikrofon sollte aktiv bleiben.

Nein, ich verwende sie über Bluetooth. Wireless war der Hauptgrund, sie überhaupt zu kaufen :)