Ich versuche gerade, über webrtc einen möglichst sauberen Audiokanal zu bekommen. Über die getUserMedia mediaconstraints Objekt, habe ich die folgenden Optionen festlegen:WebRTC - alle Audiobearbeitung deaktivieren
constraints: {
audio: {
mandatory: {
echoCancellation: false,
googEchoCancellation: false,
googAutoGainControl: false,
googAutoGainControl2: false,
googNoiseSuppression: false,
googHighpassFilter: false,
googTypingNoiseDetection: false,
//googAudioMirroring: false // For some reason setting googAudioMirroring causes a navigator.getUserMedia error: NavigatorUserMediaError
}
},
video: false
},
Dies verbessert die Audioqualität, aber es scheint immer noch Audioverarbeitung vorhanden zu sein, die die Verstümmelung des Audio in Form von Hochfrequenz verursacht Rauschen mit einigen der Testproben.
Es gibt eine Chrome-Flagge --use-file-for-fake-audio-capture
wie unter http://peter.sh/experiments/chromium-command-line-switches/#use-file-for-fake-audio-capture beschrieben, die Eingabe über Datei zum Testen ermöglicht. Wie in der Beschreibung des Flags erwähnt, muss die gesamte Audioverarbeitung deaktiviert werden oder das Audio wird verzerrt - so scheint es zusätzliche Optionen für diesen Zweck zu geben.
Ich habe auch versucht, die Chrome Flags, aber immer noch scheint es einige Audio-Verarbeitung zu sein.
Gibt es eine Möglichkeit, die noch vorhandene Audioverarbeitung zu deaktivieren (vorzugsweise über JS API)?
Tritt dies lokal oder in einer Peer-Verbindung auf? Es könnte sein, dass Chrome die Bitrate dynamisch für Opus ändert (dies ist nur der Fall, wenn Sie dies in einer Verbindung bemerken). –
Über eine Peer-Verbindung. Ich denke, es ist eine Art Sprach-Audio-Optimierung. Steigt immer mit der Zeit nach, die ein Sample gespielt hat. – wowpatrick
Ich lese es, damit ich sicher sagen kann, dass die Bitrate entsprechend der verfügbaren Bandbreite angepasst wird. – Robert