-
Diese Erfindung bezieht sich auf die Echokompensation in der Telephonie.
-
In der Telephonie werden Audiosignale (die z. B. Sprachsignale enthalten) zwischen einem nahen Ende und einem fernen Ende übertragen. Signale des fernen Endes, die bei dem nahen Ende empfangen werden, können von einem Lautsprecher ausgegeben werden. Ein Mikrofon bei dem nahen Ende kann verwendet werden, um ein Signal des nahen Endes zu erfassen, damit es zu dem fernen Ende übertragen wird. Wenn wenigstens ein Teil des Signals des fernen Endes, das bei dem nahen Ende ausgegeben wird, in dem Signal des nahen Endes enthalten ist, das zu dem fernen Ende zurückgesendet wird, tritt ein ”Echo” auf. In diesem Sinn kann das Echo als eine Reflexion des Signals des fernen Endes angesehen werden. In 1a ist ein beispielhaftes Szenarium dargestellt, das ein Signal zeigt, das durch ein Mikrofon des fernen Endes erfasst wird und durch einen Lautsprecher des nahen Endes ausgegeben wird. Das Echo ist eine Folge der akustischen Kopplung zwischen dem Lautsprecher und dem Mikrofon; das Mikrofon erfasst außer der Sprache des Sprechers des nahen Endes und irgendwelchem Hintergrundrauschen des nahen Endes das von seinem eigenen Lautsprecher ausgehende Signal. Das Ergebnis ist ein Echo bei dem Lautsprecher des fernen Endes. Die Echokompensation ist ein wichtiges Merkmal der Telephonie. Insbesondere erfordern Freihandvorrichtungen und Telekonferenzen eine Echokompensation, die sich an Umgebungen mit einem weiten Bereich akustischer Eigenschaften anpassen kann. In diesen Beispielen trägt eine Kombination von Faktoren dazu bei, dass das Echo ein größeres Problem darstellt. Erstens ist die Lautstärke, mit der das Signal des fernen Endes von dem Lautsprecher des nahen Endes ausgegeben wird, üblicherweise hoch genug, damit das Signal des fernen Endes ein erheblicher Teil des von dem Mikrofon des nahen Endes erfassten Signals ist. Zweitens neigen die physikalischen Anordnungen des Lautsprechers und des Mikrofons in diesen Anordnungstypen dazu, zu einer guten akustischen Kopplung zwischen den zwei zu führen.
-
Üblicherweise synthetisieren Schallechokompensatoren aus dem Sprachsignal des fernen Endes einen Schätzwert des Echos. Daraufhin wird das geschätzte Echo von dem Mikrofonsignal subtrahiert. Diese Technik erfordert eine adaptive Signalverarbeitung, um ein Signal zu erzeugen, das genau genug ist, um das Echo wirksam zu kompensieren. Häufig wird ein adaptives Filter verwendet, um die Schallimpulsantwort der Umgebung zu modellieren.
-
Eine Anwendung für die Schallechokompensation bildet häufig einen Teil einer Nutzeranwendung wie etwa einer VoIP-Software (Voice-over-Internet-Protocol-Software). Es besteht ein erhöhter Bedarf an einer hochauflösenden Sprachqualität in VoIP-Kommunikationen. Einige Mobiltelephonhändler integrieren nun in ihre Plattformaudioschnittstelle einen Schallechokompensator (AEC), der für Nutzeranwendungen zugänglich ist. Wenn eine Nutzeranwendung, die die Schallechokompensation implementiert, auf einer Plattform ausgeführt wird, die ebenfalls eine Schallechokompensation implementiert, kann dies eine schwere Auswirkung auf die Sprachqualität haben. 1b veranschaulicht eine Implementierung, in der die zwei hintereinandergeschaltet sind. Nichtlineare Module wie etwa ein Rauschkompensator, ein nichtlinearer Prozessor, ein Comfort-Noise-Generator und ein automatischer Verstärkungscontroller in dem Plattform-AEC können sich auf den Betrieb des Nutzeranwendungs-AEC negativ auswirken. Zum Beispiel modelliert der Nutzeranwendungs-AEC die Echowegimpulsantwort während der Anwesenheit von Sprache des fernen Endes. Dies kann veranlassen, dass er ein Echo regeneriert, das durch den Plattform-AEC kompensiert wurde. Außerdem können dadurch, dass sich der Anwendungs-AEC an das hohe Signal des fernen Endes anpasst, Perioden von Gegensprechbetrieb (DT) gestört oder zerhackt werden.
-
Vorzugsweise sollte der Nutzeranwendungs-AEC deaktiviert werden, wenn er in einer Plattform arbeitet, die in ihrer Audioschnittstelle ebenfalls einen AEC aufweist. Einige Vorrichtungshändler erkennen das Problem und stellen Informationen bereit, die über die relevante Anwendungsprogrammierschnittstelle (API) die Anwesenheit eines Plattform-AEC angeben. Diese Informationen können verwendet werden, um den Anwendungs-AEC nach Bedarf ein- oder auszuschalten. Allerdings ist diese Vorgehensweise unzuverlässig, da sie vollständig davon abhängt, dass Händler die AEC-Informationen bereitstellen. Somit besteht eine Notwendigkeit eines verbesserten Mechanismus zum Detektieren der Anwesenheit eines Plattform-AEC.
-
In Übereinstimmung mit einer ersten Ausführungsform wird ein Echokompensationsdetektor zum Steuern eines Schallechokompensators geschaffen, der dafür konfiguriert ist, ein Echo eines Signals des fernen Endes in einem Signal des nahen Endes in einem Telephoniesystem zu kompensieren, wobei der Echokompensationsdetektor einen Vergleichsgenerator, der dafür konfiguriert ist, das Signal des fernen Endes mit dem Signal des nahen Endes zu vergleichen, eine Entscheidungseinheit, die dafür konfiguriert ist, auf der Grundlage dieses Vergleichs eine Bestimmung über einen ersten Schallechokompensator vorzunehmen, und einen Controller, der dafür konfiguriert ist, einen Betrieb eines zweiten Schallechokompensators in Abhängigkeit von der Bestimmung zu steuern, umfasst.
-
Die Entscheidungseinheit kann dafür konfiguriert sein, eine Bestimmung vorzunehmen, ob ein erster Schallechokompensator vorhanden ist.
-
Der Controller kann dafür konfiguriert sein: in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator vorhanden ist, den zweiten Schallechokompensator in einen Zustand zu steuern, in dem er nicht arbeitet; und in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator vorhanden ist, den zweiten Schallechokompensator in einen Zustand zu steuern, in dem er arbeitet.
-
Der Controller kann eine Überwachungseinheit umfassen, die dafür konfiguriert ist zu überwachen, ob der erste Schallechokompensator das Echo des fernen Signals erfolgreich aus einem Mikrofonsignal entfernt, um das Signal des nahen Endes bereitzustellen, wobei der Controller dafür konfiguriert ist, in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator das Echo des fernen Endes nicht erfolgreich aus dem Mikrofonsignal entfernt, den zweiten Schallechokompensator in einen Zustand zu steuern, in dem er zum Entfernen des Echos des fernen Endes aus dem Signal des nahen Endes arbeitet.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, eine Angabe des Frequenzspektrums des Signals des fernen Endes mit einer Angabe des Frequenzspektrums des Signals des nahen Endes zu vergleichen.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, eine binäre Darstellung des Frequenzspektrums des Signals des fernen Endes mit einer binären Darstellung des Frequenzspektrums des Signals des nahen Endes zu vergleichen.
-
Der Vergleichsgenerator kann einen Frequenzspektrengenerator umfassen, der dafür konfiguriert ist, eine binäre Darstellung eines Frequenzspektrums zu bilden, durch: Darstellen eines Frequenz-Pins in dem Frequenzspektrum mit einer Größe über einem vorgegebenen Schwellenwert als einen ersten vorgegebenen Wert in der binären Darstellung; und Darstellen eines Frequenz-Pins mit einer Größe unter dem vorgegebenen Schwellenwert als einen zweiten vorgegebenen Wert in der binären Darstellung.
-
Der Frequenzspektrengenerator kann dafür konfiguriert sein, die binäre Darstellung des Frequenzspektrums zu bilden, um nur ausgewählte Frequenz-Pins darzustellen.
-
Der Frequenzspektrengenerator kann dafür konfiguriert sein, die Frequenz-Pins entsprechend den in menschlicher Sprache zu findenden Frequenzen auszuwählen.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, das Signal des fernen Endes mit dem Signal des nahen Endes durch Zählen der Anzahl entsprechender Frequenz-Pins, für die die binären Darstellungen der Signale des fernen Endes und des nahen Endes beide den ersten vorgegebenen Wert aufweisen oder beide den zweiten vorgegebenen Wert aufweisen, zu vergleichen.
-
Der Vergleichsgenerator kann konfiguriert sein zum: Vergleichen einer binären Darstellung des Signals des nahen Endes für den aktuellen Rahmen mit binären Darstellungen des Signals des fernen Endes für mehrere vorhergehende Rahmen; und Addieren einer Einheit zu dem Zählwert, falls eine binäre Darstellung des Signals des fernen Endes für irgendeinen dieser vorhergehenden Rahmen den ersten oder den zweiten vorgegebenen Wert für einen Frequenz-Bin umfasst, der einem Frequenz-Bin entspricht, in dem die binäre Darstellung des Signals des nahen Endes für den aktuellen Rahmen denselben ersten bzw. zweiten vorgegebenen Wert aufweist.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, den Zählwert mit einem oder mit mehreren Zählwerten, die durch Vergleichen vorhergehender Rahmen des Signals des nahen Endes und des Signals des fernen Endes erzeugt wurden, zu mitteln.
-
Der Controller kann konfiguriert sein zum: Steuern des zweiten Schallkompensators in einen Zustand, in dem er nicht arbeitet, falls der gemittelte Zählwert unter einem vorgegebenen Schwellenwert liegt; und Steuern des zweiten Schallkompensators in einen Zustand, in dem er arbeitet, falls der gemittelte Zählwert über dem vorgegebenen Schwellenwert liegt.
-
Der Echokompensationsdetektor kann dafür konfiguriert sein, die Anwesenheit von Sprache des fernen Endes zu bestätigen, bevor er das Signal des fernen Endes mit dem Signal des nahen Endes vergleicht.
-
In Übereinstimmung mit einer zweiten Ausführungsform wird ein Verfahren zum Kompensieren eines Echos eines Signals des fernen Endes in einem Signal des nahen Endes in einem Telephoniesystem geschaffen, wobei das Verfahren das Vergleichen des Signals des fernen Endes mit dem Signal des nahen Endes, das Vornehmen einer Bestimmung über einen ersten Schallechokompensator auf der Grundlage dieses Vergleichs und das Betreiben eines zweiten Schallechokompensators in Abhängigkeit von der Bestimmung umfasst.
-
Das Verfahren kann das Vornehmen einer Bestimmung, ob ein erster Schallechokompensator vorhanden ist, umfassen.
-
Das Verfahren kann umfassen: in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator vorhanden ist, Veranlassen, dass der zweite Schallechokompensator in einem Zustand ist, in dem er nicht arbeitet; und in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator vorhanden ist, Veranlassen, dass der zweite Schallechokompensator in einen Zustand ist, in dem er arbeitet.
-
Falls bestimmt wird, dass der erste Schallechokompensator vorhanden ist, kann das Verfahren umfassen: Überwachen, ob der erste Schallechokompensator das Echo des fernen Signals erfolgreich aus einem Mikrofonsignal entfernt, um das Signal des nahen Endes bereitzustellen; und in Ansprechen auf eine Bestimmung, dass der erste Schallechokompensator das Echo des fernen Endes nicht erfolgreich aus dem Mikrofonsignal entfernt, Veranlassen, dass der zweite Schallechokompensator in einen Zustand gesteuert wird, in dem er zum Entfernen des Echos des fernen Endes aus dem Signal des nahen Endes arbeitet.
-
Das Verfahren kann das Vergleichen einer Angabe des Frequenzspektrums des Signals des fernen Endes mit einer Angabe des Frequenzspektrums des Signals des nahen Endes umfassen.
-
Das Verfahren kann das Vergleichen einer binären Darstellung des Frequenzspektrums des Signals des fernen Endes mit einer binären Darstellung des Frequenzspektrums des Signals des nahen Endes umfassen.
-
Das Verfahren kann das Bilden der binären Darstellung eines Frequenzspektrums umfassen, durch: Darstellen eines Frequenz-Pins in dem Frequenzspektrum mit einer Größe über einem vorgegebenen Schwellenwert als einen ersten vorgegebenen Wert in der binären Darstellung; und Darstellen eines Frequenz-Pins mit einer Größe unter dem vorgegebenen Schwellenwert als einen zweiten vorgegebenen Wert in der binären Darstellung.
-
Das Verfahren kann das Bilden der binären Darstellung des Frequenzspektrums, um nur ausgewählte Frequenz-Pins darzustellen, umfassen.
-
Das Verfahren kann das Auswählen der Frequenz-Pins entsprechend den in menschlicher Sprache zu findenden Frequenzen umfassen.
-
Das Verfahren kann das Vergleichen des Signals des fernen Endes mit dem Signal des nahen Endes durch Zählen der Anzahl entsprechender Frequenz-Pins, für die die binären Darstellungen der Signale des fernen Endes und des nahen Endes beide den ersten vorgegebenen Wert aufweisen oder beide den zweiten vorgegebenen Wert aufweisen, umfassen.
-
Das Verfahren kann umfassen: Vergleichen einer binären Darstellung des Signals des nahen Endes für den aktuellen Rahmen mit binären Darstellungen des Signals des fernen Endes für mehrere vorhergehende Rahmen; und Addieren einer Einheit zu dem Zählwert, falls eine binäre Darstellung des Signals des fernen Endes für irgendeinen dieser vorhergehenden Rahmen den ersten oder den zweiten vorgegebenen Wert für einen Frequenz-Bin umfasst, der einem Frequenz-Bin entspricht, in dem die binäre Darstellung des Signals des nahen Endes für den aktuellen Rahmen denselben ersten bzw. zweiten vorgegebenen Wert aufweist.
-
Das Verfahren kann das Mitteln des Zählwerts mit einem oder mit mehreren Zählwerten, die durch Vergleichen vorhergehender Rahmen des Signals des nahen Endes und des Signals des fernen Endes erzeugt wurden, umfassen.
-
Das Verfahren kann umfassen: Veranlassen, dass der zweite Schallkompensator in einem Zustand ist, in dem er nicht arbeitet, falls der gemittelte Zählwert unter einem vorgegebenen Schwellenwert liegt; und Veranlassen, dass der zweite Schallkompensator in einem Zustand ist, in dem er arbeitet, falls der gemittelte Zählwert über dem vorgegebenen Schwellenwert liegt.
-
Das Verfahren kann das Bestätigen der Anwesenheit von Sprache des fernen Endes, bevor er das Signal des fernen Endes mit dem Signal des nahen Endes vergleicht, umfassen.
-
In Übereinstimmung mit einer dritten Ausführungsform wird ein Vergleichsgenerator zum Bestimmen der Ähnlichkeit zwischen einem ersten Signal und einem zweiten Signal geschaffen, wobei der Vergleichsgenerator einen Frequenzspektrengenerator umfasst, der konfiguriert ist zum Erhalten eines Frequenzspektrums beider Signale und für jedes Frequenzspektrum zum Bilden einer binären Darstellung dieses Spektrums durch Darstellen eines Frequenz-Pins mit einer Größe über einem vorgegebenen Schwellenwert in dem Frequenzspektrum mit einem ersten vorgegebenen Wert und eines Frequenz-Pins mit einer Größe unter dem vorgegebenen Schwellenwert in dem Frequenzspektrum als einen zweiten vorgegebenen Wert, wobei der Vergleichsgenerator konfiguriert ist zum Vergleichen der binären Darstellungen des ersten und des zweiten Signals und zum Zählen der Anzahl entsprechender Frequenz-Pins, für die die binären Darstellungen des ersten und des zweiten Signals entweder beide den ersten vorgegebenen Wert aufweisen oder beide den zweiten vorgegebenen Wert aufweisen.
-
Der Vergleichsgenerator kann konfiguriert sein zum Vergleichen einer binären Darstellung des ersten Signals für einen aktuellen Rahmen mit binären Darstellungen des zweiten Signals für mehrere vorhergehende Rahmen und zum Addieren einer Einheit zu dem Zählwert, falls eine binäre Darstellung des zweiten Signals für irgendeinen dieser vorhergehenden Rahmen den ersten oder den zweiten vorgegebenen Wert für einen Frequenz-Bin umfasst, der einem Frequenz-Bin entspricht, in dem die binäre Darstellung des ersten Signals für den aktuellen Rahmen denselben ersten bzw. zweiten vorgegebenen Wert aufweist.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, den Zählwert mit einem oder mit mehreren Zählwerten, die durch Vergleichen vorhergehender Rahmen des ersten und des zweiten Signals erzeugt wurden, zu mitteln.
-
Der Frequenzspektrengenerator kann dafür konfiguriert sein, die binäre Darstellung des Frequenzspektrums zu bilden, um nur ausgewählte Frequenz-Pins darzustellen.
-
Der Frequenzspektrengenerator kann dafür konfiguriert sein, die Frequenz-Pins entsprechend den in menschlicher Sprache zu findenden Frequenzen auszuwählen.
-
Der Vergleichsgenerator kann dafür konfiguriert sein, die Ähnlichkeit zwischen einem Signal des nahen Endes und einem Signal des fernen Endes in einem Telephoniesystem zu bestimmen.
-
Ein Echokompensationsdetektor kann einen Vergleichsgenerator umfassen, wobei der Echokompensationsdetektor ferner eine Entscheidungseinheit umfasst, die dafür konfiguriert ist, in Abhängigkeit von der bestimmten Ähnlichkeit zwischen den Signalen des nahen Endes und des fernen Endes eine Bestimmung über einen ersten Schallechokompensator vorzunehmen.
-
Die Entscheidungseinheit kann dafür konfiguriert sein, eine Bestimmung vorzunehmen, ob in dem Telephoniesystem ein erster Schallechokompensator vorhanden ist.
-
Ferner kann der Echokompensationsdetektor einen Controller umfassen, der dafür konfiguriert ist, den zweiten Schallechokompensator in Abhängigkeit von der Bestimmung zu betreiben.
-
Ferner kann der Echokompensationsdetektor konfiguriert sein zum: Veranlassen, dass der zweite Schallechokompensator in einem Zustand ist, in dem er nicht arbeitet, falls der gemittelte Zählwert unter einem vorgegebenen Schwellenwert liegt; und Veranlassen, dass der zweite Schallechokompensator in einem Zustand ist, in dem er arbeitet, falls der gemittelte Zählwert über dem vorgegebenen Schwellenwert liegt.
-
In Übereinstimmung mit einer vierten Ausführungsform wird ein Verfahren zum Bestimmen der Ähnlichkeit zwischen einem ersten Signal und einem zweiten Signal geschaffen, das das Erhalten eines Frequenzspektrums beider Signale, für jedes Frequenzspektrum das Bilden einer binären Darstellung dieses Spektrums durch Darstellen eines Frequenz-Pins mit einer Größe über einem vorgegebenen Schwellenwert in dem Frequenzspektrum mit einem ersten vorgegebenen Wert und eines Frequenz-Pins mit einer Größe unter dem vorgegebenen Schwellenwert in dem Frequenzspektrum als einen zweiten vorgegebenen Wert, das Vergleichen der binären Darstellungen des ersten und des zweiten Signals und das Zählen der Anzahl entsprechender Frequenz-Pins, für die die binären Darstellungen des ersten und des zweiten Signals entweder beide den ersten vorgegebenen Wert aufweisen oder beide den zweiten vorgegebenen Wert aufweisen, umfasst.
-
Das Verfahren kann das Vergleichen einer binären Darstellung des ersten Signals für einen aktuellen Rahmen mit binären Darstellungen des zweiten Signals für mehrere vorhergehende Rahmen und das Addieren einer Einheit zu dem Zählwert, falls die binäre Darstellung des zweiten Signals für irgendeinen dieser vorhergehenden Rahmen den ersten oder den zweiten vorgegebenen Wert für einen Frequenz-Bin umfasst, der einem Frequenz-Bin entspricht, in dem die binäre Darstellung des ersten Signals für den aktuellen Rahmen denselben ersten bzw. zweiten vorgegebenen Wert aufweist, umfassen.
-
Das Verfahren kann das Mitteln des Zählwerts mit einem oder mit mehreren Zählwerten, die durch Vergleichen vorhergehender Rahmen des ersten und des zweiten Signals erzeugt wurden, umfassen.
-
Das Verfahren kann das Bilden der binären Darstellung des Frequenzspektrums, um nur ausgewählte Frequenz-Pins darzustellen, umfassen.
-
Das Verfahren kann das Auswählen der Frequenz-Pins entsprechend den in menschlicher Sprache zu findenden Frequenzen umfassen.
-
Das Verfahren kann das Verwenden des Verfahrens zum Bestimmen der Ähnlichkeit zwischen einem Signal des nahen Endes und einem Signal des fernen Endes in einem Telephoniesystem umfassen.
-
Das Verfahren kann das Vornehmen einer Bestimmung über einen ersten Schallechokompensator in Abhängigkeit von der bestimmten Ähnlichkeit zwischen den Signalen des nahen Endes und des fernen Endes umfassen.
-
Das Verfahren kann das Vornehmen einer Bestimmung, ob in dem Telephoniesystem ein erster Schallechokompensator vorhanden ist, umfassen.
-
Das Verfahren kann das Betreiben des zweiten Schallechokompensators in Abhängigkeit von der Bestimmung umfassen.
-
Das Verfahren kann umfassen: Veranlassen, dass der zweite Schallechokompensator in einem Zustand ist, in dem er nicht arbeitet, falls der gemittelte Zählwert unter einem vorgegebenen Schwellenwert liegt; und Veranlassen, dass der zweite Schallechokompensator in einem Zustand ist, in dem er arbeitet, falls der gemittelte Zählwert über dem vorgegebenen Schwellenwert liegt.
-
Die vorliegende Erfindung wird nun beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben. In den Zeichnungen ist Folgendes gezeigt:
-
1a zeigt eine Architektur eines beispielhaften Echowegüberwachungssystems;
-
1b zeigt einen Plattform-AEC und einen Nutzeranwendungs-AEC in einer hintereinandergeschalteten Konfiguration;
-
2 zeigt ein Beispiel eines Verfahrens zum Steuern eines Nutzeranwendungs-AEC;
-
3 zeigt ein Beispiel eines Echokompensationsdetektors;
-
4 zeigt ein Beispiel eines Verfahrens zum Messen einer Ähnlichkeitsmetrik zwischen zwei Signalen;
-
5 zeigt einen Ähnlichkeitsindexzähler für eine Vorrichtung, die einen Plattform-AEC enthält;
-
6 zeigt die Detektionsverzögerung des Algorithmus während verschiedener Audiobetriebsarten; und
-
7 zeigt einen Ähnlichkeitsindexzähler für eine Vorrichtung ohne einen Plattform-AEC.
-
Ein erster AEC und ein zweiter AEC können in einer hintereinandergeschalteten Konfiguration angeordnet sein (ein Beispiel dieses Anordnungstyps ist in 3 gezeigt). Der erste AEC kann dafür konfiguriert sein, ein durch ein Mikrofon erfasstes Signal zu empfangen. Dieses Signal kann als das ”Mikrofonsignal” bezeichnet werden und enthält üblicherweise ein Gespräch des nahen Endes, lokales Rauschen und ein Echo des Signals des fernen Endes. Das durch den zweiten AEC empfangene Signal kann als ein ”Signal des nahen Endes” bezeichnet werden. Falls der zweite AEC mit einem ersten AEC hintereinandergeschaltet ist, ist das Signal des nahen Endes das Signal, das durch den ersten AEC ausgegeben wird. Falls der erste AEC nicht vorhanden ist, ist das Signal des nahen Endes dasselbe wie das Mikrofonsignal. Um irgendeine Verwirrung zu vermeiden, ist das durch den zweiten AEC empfangene Signal hier unabhängig davon, ob dieses Signal dasselbe wie das Mikrofonsignal oder ein anderes ist, hier durchgängig als das ”Signal des nahen Endes” bezeichnet.
-
In 2 ist eine Übersicht eines Verfahrens zum Steuern eines Schallechokompensators (AEC) in einem Telephoniesystem gezeigt. Das Verfahren umfasst das Vergleichen des Signals des fernen Endes mit dem Signal des nahen Endes (Schritt S201) und das Verwenden dieses Vergleichs, um eine Bestimmung über einen ersten AEC vorzunehmen (Schritt S202). Diese Bestimmung könnte z. B. sein, ob in dem Telephoniesystem ein erster AEC vorhanden ist oder ob der erste AEC das Echo des Signals des fernen Endes erfolgreich entfernt. Vorzugsweise wird die Bestimmung in Echtzeit vorgenommen. Daraufhin umfasst das Verfahren das Betreiben eines zweiten AEC in Abhängigkeit von der Bestimmung, die über den ersten AEC vorgenommen worden ist (Schritt S203). Üblicherweise enthält dies entweder das Sicherstellen, dass der zweite AEC freigegeben ist, oder das Sicherstellen, dass er deaktiviert ist. In den meisten Implementierungen ist der zweite AEC standardmäßig freigegeben, so dass das Betreiben des zweiten AEC in Abhängigkeit von der Bestimmung über den ersten AEC entweder das Deaktivieren des zweiten AEC oder dessen Eingeschaltetlassen umfasst. Es könnte ebenfalls des Steuerns irgendeines Aspekts des Betriebs des zweiten AEC, z. B. des Grads, in dem er das Echo aus dem Signal des nahen Endes entfernt, oder der Art und Weise, in der er dieses Echo modelliert, umfassen.
-
In 3 ist eine Übersicht einer Vorrichtung zum Steuern eines Schallechokompensators gezeigt. Die Vorrichtung ist allgemein durch den Echokompensationsdetektor 301 dargestellt. In diesem Beispiel bildet der Echokompensationsdetektor einen Teil eines umfangreicheren Telephoniesystems 310. In diesem Beispiel umfasst das Telephoniesystem zwei AECs: den ersten AEC 302 und den zweiten AEC 303. Vorzugsweise ist der Echokompensationsdetektor dafür konfiguriert, das Signal des fernen Endes und das Signal des nahen Endes zu empfangen. Er umfasst einen Vergleichsgenerator 304, der dafür konfiguriert sein kann, die Signale des nahen Endes und des fernen Endes zu vergleichen. Das Ergebnis dieses Vergleichs wird geeignet an die Entscheidungseinheit 305 übergeben. Vorzugsweise ist die Entscheidungseinheit dafür konfiguriert, auf der Grundlage des Vergleichs eine Bestimmung über den ersten AEC vorzunehmen. Diese Bestimmung wird geeignet an den Controller 306 übergeben. Der Controller 306 kann dafür konfiguriert sein, einen Betrieb des zweiten AEC in Abhängigkeit von der Bestimmung zu steuern.
-
In einem Beispiel kann der Vergleichsgenerator 304 dafür konfiguriert sein, die Signale des nahen Endes und des fernen Endes unter Verwendung eines bestimmten Algorithmus zu vergleichen, der im Folgenden ausführlicher beschrieben ist. Ein auf diese Weise konfigurierter Vergleichsgenerator kann einen Neuabtaster 307, einen Frequenzspektrengenerator 308 (der dafür konfiguriert sein kann, irgendeinen Typ von Frequenzspektren einschließlich binärer Spektren zu erzeugen) und ein Sprachaktivitäts-Detektionsmodul 314 enthalten. Außerdem kann er eine Mittelungseinheit 317, einen Zähler 318 und eine Vergleichseinheit 319, die dafür konfiguriert sein kann, binäre Frequenzspektren, die den von dem Frequenzspektrengenerator 308 ausgegebenen Signalen des nahen Endes und des fernen Endes entsprechen, direkt zu vergleichen, enthalten. Die Entscheidungseinheit 305 kann eine Entscheidungslogik 315 und ein Rechenmodul 316 enthalten. Außerdem kann der Controller 306 eine Überwachungseinheit 309 umfassen, um zu überwachen, wie erfolgreich das Echo durch den ersten AEC 302 aus dem Mikrofonsignal entfernt wird.
-
Vorzugsweise ist der Echokompensationsdetektor 301 dafür konfiguriert, den zweiten AEC 303 nur dafür zu steuern, dass er in einem Zustand ist, in dem er arbeitet, falls der erste AEC 302 entweder fehlt oder eine schlechte Leistung erbringt (in 3 ist dies dadurch dargestellt, dass der Echokompensationsdetektor den Multiplexer 313 steuert, der ermöglicht, dass der zweite AEC umgangen wird). Somit kann der erste AEC als einer angesehen werden, der effektiv Vorrang vor dem Zweiten hat. Es kann eine Anzahl praktischer Gründe dafür geben, einen AEC gegenüber dem anderen zu bevorzugen. Zum Beispiel kann der erste AEC ein Plattform-AEC sein: ein AEC, der ein integraler Bestandteil der Plattform ist, die dem Telephoniesystem zugrunde liegt, und wahrscheinlich bei der Herstellung installiert worden ist. Der zweite AEC kann ein Nutzeranwendungs-AEC sein: ein Teil eines durch den Nutzer nach der Herstellung auf dem Telephoniesystem installierten Programms. In diesem Szenarium kann der Plattform-AEC spezifisch für die fragliche Plattform entwickelt worden sein, so dass zu erwarten ist, dass er in den meisten Szenarien gut arbeitet. Der Nutzeranwendungs-AEC ist wahrscheinlich als ein Universal-AEC entwickelt worden, der in vielen verschiedenen Plattformen implementiert werden kann. Somit könnte zu erwarten sein, dass der Plattform-AEC in einer bestimmten Plattform besser als der allgemeinere Nutzeranwendungs-AEC arbeitet. Ein weiterer Grund für die Bevorzugung eines AEC gegenüber dem anderen könnte einfach eine Frage der Steuerung sein: Der Echokompensationsdetektor kann nicht die Fähigkeit besitzen, einen Plattform-AEC zu deaktivieren, während er in der Lage sein kann, den Nutzeranwendungs-AEC zu deaktivieren.
-
Beide AECs könnten entweder in Hardware oder in Software implementiert sein und sind häufig durch eine Kombination der zwei implementiert.
-
Das Telephoniesystem könnte z. B. ein Mobiltelephon, ein Telekonferenzsystem, ein drahtgebundenes Telephon, eine Telephonieanwendung in einer Computervorrichtung oder irgendein anderes Kommunikationssystem sein. Es ist zu verstehen, dass das Telephoniesystem irgendeine Komponente oder irgendeinen Funktionsblock, die bzw. der in typischen Kommunikationssystemen zu finden ist, enthalten kann. Zum Beispiel kann ein typisches Telephoniesystem eines oder mehrere der Folgenden enthalten: ein Mikrofon 311, einen Lautsprecher 312, ein Modem, eine Antenne, einen Signalprozessor, einen Analog-Digital-Umsetzer, einen Digital-Analog-Umsetzer, ein Filter, einen Rauschkompensator, einen automatischen Verstärkungscontroller, einen Comfort-Noise-Generator usw. (von denen die meisten in 3 nicht gezeigt sind).
-
Die in 3 gezeigten Strukturen sollen einer Anzahl von Funktionsblöcken in einer Vorrichtung entsprechen. Dies dient nur zur Veranschaulichung. 3 soll keine strenge Trennung zwischen verschiedenen Teilen aus Hardware in einem Chip oder zwischen verschiedenen Programmen, Prozeduren oder Funktionen in Software definieren. In einigen Ausführungsformen können einige oder alle der hier beschriebenen Prozeduren vollständig oder teilweise in Hardware ausgeführt werden. In einigen Implementierungen können der Echokompensationsdetektor 301, der Vergleichsgenerator 304, die Entscheidungseinheit 305, der Controller 306, die Überwachungseinheit 309 und der Frequenzspektrengenerator 308 durch einen Prozessor, der gemäß Softwaresteuerung wirkt, (z. B. durch den in 3 gezeigten Prozessor) implementiert werden. Irgendwelche solche Software ist vorzugsweise in einem nicht vorübergehenden computerlesbaren Medium wie etwa einem Speicher (RAM, Cache, FLASH, ROM, Festplatte usw.) oder in anderen Ablagemitteln (USB-Stick, FLASH, ROM, CD, Platte usw.) gespeichert. In einer Ausführungsform kann der Echokompensationsdetektor einen Teil einer Nutzeranwendung bilden, die einen Anwendungs-AEC implementiert.
-
Anhand eines Szenariums, in dem der erste AEC 302 ein Plattform-AEC ist und der zweite AEC 303 ein Nutzeranwendungs-AEC ist, werden nun ausführlichere Ausführungsformen beschrieben. Dies ist nur beispielhaft und es ist zu verstehen, dass die hier beschriebenen Verfahren und Vorrichtungen zum Steuern irgendeines Typs von AEC verwendet werden könnten.
-
Dadurch, dass in Abhängigkeit von dem Signal des fernen Endes und von dem Signal des nahen Endes eine Bestimmung über eine Plattform-AEC vorgenommen wird, wird die Bestimmung unabhängig von irgendwelchen durch den Plattformhersteller bereitgestellten Informationen. Somit hängt der Betrieb des Nutzeranwendungs-AEC weder davon ab, ob die Plattform Informationen über eine API verfügbar macht, noch muss die Steuerung des Nutzeranwendungs-AEC an ein bestimmtes Informationsformat angepasst werden. Außerdem wird es möglich, nicht nur den Nutzeranwendungs-AEC in Abhängigkeit nur von der Anwesenheit eines Plattform-AEC zu steuern, sondern auch davon, als wie erfolgreich sich der Plattform-AEC tatsächlich dabei erweist, das Echo des fernen Endes aus dem Mikrofonsignal zu entfernen, um das Signal des nahen Endes zu bilden, das für den Anwendungs-AEC 303 bereitgestellt wird.
-
Es ist zu erwarten, dass der Plattform-AEC normalerweise gut arbeitet, da er spezifisch auf eine gegebene Vorrichtung abgestimmt ist. Somit wird der Nutzeranwendungs-AEC vorzugsweise deaktiviert, um die Sprachqualitätsverschlechterung zu minimieren und die CPU-Last zu verringern, falls die Anwesenheit eines Plattform-AEC bestätigt wird. Falls der Plattform-AEC nicht wie erwartet arbeitet, kann allerdings der Nutzeranwendungs-AEC entweder nicht deaktiviert werden oder wieder freigegeben werden. In diesem Fall hilft der Nutzeranwendungs-AEC, das unerwünschte Echo zu kompensieren.
-
Das Vergleichen des Signals des nahen Endes und des Signals des fernen Endes liefert eine Angabe dafür, wie ähnlich die zwei Signale zueinander sind. Außerdem gibt dies an, ob das Signal des nahen Endes ein erhebliches Echo des Signals des fernen Endes enthält, was wiederum die Abwesenheit (oder schlechte Leistung) eines Plattform-AEC angibt. Es gibt viele verschiedene Techniken, die verwendet werden könnten, um die zwei Signale zu vergleichen, wobei zu verstehen ist, dass das hier beschriebene Verfahren die Verwendung irgendeiner geeigneten Technik einschließt. Insbesondere könnte der Vergleich entweder im Zeit- oder im Frequenzbereich berechnet werden. Allerdings sind viele vorhandene Vergleichstechniken nicht bevorzugt, da sie von hoher Rechenkomplexität sind oder eine inhärente Verzögerung beim Bereitstellen einer Angabe der Ähnlichkeit enthalten. Im Folgenden ist eine neue Technik zum Vergleichen zweier Signale beschrieben. Diese Technik ist im Kontext des Vornehmens einer Bestimmung über einen Plattform-AEC beschrieben, wobei dies aber nur beispielhaft ist. Die Technik könnte vorteilhaft in vielen anderen Anwendungen genutzt werden, in denen zwei Signale miteinander verglichen werden.
-
Das im Folgenden beschriebene Vergleichsverfahren kann die Anwesenheit und/oder das Betriebsverhalten eines Plattform-AEC zur Laufzeit detektieren. Es verwendet weniger als 10 Sekunden, vorzugsweise weniger als 5 Sekunden und am meisten bevorzugt weniger als 2 Sekunden der Sprache des fernen Endes, um die Anwesenheit und/oder das Betriebsverhalten eines Plattform-AEC zu bestätigen. Tatsächlich kann das Vergleichsverfahren die Anwesenheit von Sprache des fernen Endes mit näherungsweise 1 Sekunde der Sprache des fernen Endes bestätigen. Eine Hauptkomponente des Verfahrens ist eine Technik, die die binären Spektren der Signale des nahen Endes und des fernen Endes korreliert. Sie schätzt den Gleitmittelwert eine Ähnlichkeitsmetrik zwischen diesen binären Eingangsspektren.
-
4 zeigt einen Blockschaltplan des Vergleichsverfahrens zusammen mit einer Entscheidungslogik, die für die Plattform-AEC-Detektion geeignet ist. Das Verfahren wird unter Verwendung von Gleichungen beschrieben, die sich hauptsächlich auf das Signal des fernen Endes beziehen. Dies wird durch die Verwendung des Index ”x” in den folgenden Gleichungen zur Darstellung des Signals des fernen Endes veranschaulicht. Dieselben Gleichungen und die beigefügte Beschreibung sind gleichfalls auf das Signal des nahen Endes (durch den Index ”d” repräsentiert ist) anwendbar.
-
Der Prozess beginnt in Schritt 401, wobei sowohl das Signal des nahen Endes als auch das des fernen Endes unter Verwendung des Neuabtasters 307 neu abgetastet werden. Eine geeignete Abtastrate könnte z. B. 4 kHz sein. Die Neuabtastung der Signale verringert die Komplexität der nachfolgenden Operationen und macht den Algorithmus unabhängig von der ursprünglichen Abtastrate der Signale.
-
In Schritt 402 werden die Signale neu gerahmt. Eine geeignete Rahmengröße für die ankommenden Signale ist 10 ms (d. h. 40 Abtastwerte bei einer Abtastrate von 4 kHz). Diese Abtastwerte werden daraufhin mit vorhergehenden Abtastwerten der Signale des nahen Endes und des fernen Endes verkettet. In einem Beispiel werden die ankommenden Signale mit 88 vorhergehenden Abtastwerten verkettet. Daraufhin werden die Abtastwerte durch den Frequenzspektrengenerator 308, z. B. unter Verwendung einer schnellen Fourier-Transformation (FFT) mit 128 Punkten, in den Frequenzbereich umgesetzt.
-
Daraufhin berechnet der Algorithmus eine Kurzzeitenergie des Signals des fernen Endes und des Signals des nahen Endes (Schritt S403). Eine Mittelung über eine Anzahl vorhergehender Rahmen bietet eine bessere Frequenzlokalisierung. Für die Weiterverarbeitung kann ein Mittelwert von K aufeinanderfolgenden Rahmen verwendet werden:
wobei X
f(m, l – n) die FFT des l – n-ten Rahmens und des m-ten Frequenz-Pins repräsentiert und X(m, l) die gemittelte FFT der früheren K Rahmen repräsentiert. In einem Beispiel ist K = 4.
-
Um die Komplexität zu verringern und die Genauigkeit zu verbessern, kann sich der Algorithmus auf diejenigen Frequenz-Pins konzentrieren, die üblicherweise eine dominante Sprachanwesenheit zeigen, und kann er jene, die üblicherweise keinen Teil der menschlichen Sprache bilden, ignorieren. Ein geeigneter Frequenzbereich ist 320 Hz bis 1400 Hz. Falls ein Frequenzbereich zwischen 0 und 4 kHz auf 64 Frequenz-Pins abgebildet wird, entspricht dieser typische Sprachbereich m = 12 bis 43, wobei 1 ≤ m ≤ 64 ist. Die Kurzzeitenergie des l-ten Rahmens und des c-ten Frequenz-Pins (wobei c die Frequenz-Pins des für menschliche Sprache geeigneten Frequenzbereichs repräsentiert, z. B. in diesem Beispiel c = m – 12) kann wie folgt geschätzt werden: Sx(c, l) = Re(X(11 + c, l))2 + Img(X(11 + c, l))2 mit (0 ≤ c ≤ 31). (2)
-
Daraufhin wird in Schritt S404 die Langzeitenergie jedes Rahmens geschätzt. Dies kann durch Mitteln der Kurzzeitenergie, Sx(c, l), z. B. unter Verwendung eines adaptiven Filters erster Ordnung, erreicht werden. Der Langzeitterm des l-ten Rahmens, Lx(c, l) kann wie folgt erhalten werden: Δx(c, l) = Sx(c, l) – Lx(c, l – 1)
Lx(c, l) = Lx(c, l – 1) + (αx(l)·Δx(c, l)) + γx(l). (3)
-
Der Filterkoeffizient α
x(l) und der affine Versatz γ
x(l) können durch Δ
x(c, l) bestimmt werden. Zum Beispiel ist:
wobei β
1, β
3,β
4 und β
5 Parameter sind, die für eine spezifische Implementierung auf geeignete Werte eingestellt werden können.
-
Durch den Frequenzspektrengenerator
308 können aus den geschätzten mittleren Kurzzeit- und Langzeitenergien binäre Spektren berechnet werden (Schritt S405). Der Prozess umfasst das Betrachten des Energieinhalts jedes Frequenz-Pins und das Einstellen des binären Spektrums auf eine '1' in Bezug auf einen Bin, der die Anwesenheit von Sprache angibt, und auf eine '0' in Bezug auf einen Bin, der die Abwesenheit von Sprache angibt. Auf diese Weise geben die binären Spektren die Anwesenheit oder Abwesenheit von Sprache in den jeweiligen Frequenz-Pins an. Das binäre Spektrum BS
x(c, l) für den l-ten Rahmen und für den c-ten Frequenz-Bin ist gegeben durch:
wobei α und ζ
2 Parameter sind, die für eine spezifische Implementierung auf geeignete Werte eingestellt werden können.
-
Wegen der akustischen Kopplung zwischen dem Lautsprecher 312 und dem Mikrofon 310 kann wenigstens ein Teil des Signals des fernen Endes als Echo in der Mikrofonausgabe enthalten sein. Bevor die Spektren des nahen und des fernen Endes verglichen werden, prüft der Prozess geeignet, ob es ein Signal des fernen Endes gibt, das ein Echo verursachen könnte. Falls der Teilnehmer des fernen Endes ruhig ist, gibt es kein Echo des fernen Endes und kann der Rechenaufwand eingespart werden. Die Entscheidungslogik und die Rechenmodule, die in der Entscheidungseinheit 305 enthalten sind und die für die Ähnlichkeitsindexberechnung (im Folgenden beschrieben) konfiguriert sind, können inaktiv bleiben, bis ein Sprachsignal des fernen Endes vorhanden ist.
-
Das Verfahren prüft geeignet, ob Sprache des fernen Endes vorhanden ist, indem es den Inhalt der letzten M Rahmen überprüft. Der Wert von M hängt von einer maximalen reinen Verzögerung und/oder von einer dünn besetzten Echowegverteilung ab, die zwischen den Signalen des fernen Endes und des nahen Endes erwartet wird. Dies kann durch Beobachten der Verzögerung bestimmt werden, die über verschiedene Anrufe mit verschiedenen Vorrichtungen erfahren wird. Üblicherweise wird dies im Voraus bestimmt und in den Echokompensationsdetektor 305 programmiert, könnte aber durch den Echokompensationsdetektor 305 in Echtzeit bestimmt werden. Eine typische Verzögerung ist eine reine Verzögerung von etwa 1 Sekunde, was für eine Rahmenrate von 100 Rahmen pro Sekunde M = 100 Rahmen entspricht.
-
Der Vergleichsgenerator
304 kann ein Sprachdetektionsmodul
314 umfassen, das dafür konfiguriert ist, den Prozess der Sprachaktivitätsdetektion (VAD) auszuführen. Er kann zunächst durch Betrachtung des aktuellen Rahmens und daraufhin durch dessen Kombinieren mit zuvor über die vorhergehenden M Rahmen vorgenommenen Bestimmungen auf die Anwesenheit von Sprache des fernen Endes prüfen (Schritt S406). Dadurch, dass geprüft wird, ob die Gesamtzahl aktiver Frequenz-Pins des fernen Endes in dem binären Spektrum größer als ein erster im Voraus definierter Schwellenwert ist, kann eine Entscheidung darüber getroffen werden, ob es in dem aktuellen Rahmen Sprache des fernen Endes gibt:
-
Um die reine Verzögerung auf dem Echoweg zu berücksichtigen, kann eine kumulative Sprachaktivität des fernen Endes für die vorhergehenden M Rahmen bestimmt werden:
-
Falls cvadx '0' ist, gibt es an, dass das Signal des fernen Endes in den letzten M Rahmen keine Sprache enthalten hat, d. h., dass der Teilnehmer des fernen Endes ruhig ist. Somit können die Entscheidungslogik und die Rechenmodule für die Ähnlichkeitsindexberechnung, die in der Entscheidungseinheit 305 enthalten sind (und die bei 315 bzw. 316 gezeigt sind), wie durch Schritt S407 in 4 und seine Steuerung der Schalter 420 und 421 angegeben ist, inaktiv bleiben. In diesem Szenarium werden die Werte der Langzeitenergie und des Ähnlichkeitszählers wie für den vorhergehenden Rahmen belassen (Schritt S408), bevor der Algorithmus zu dem nächsten Rahmen geht (Schritt S409).
-
4 und die obige Beschreibung beschreiben eine Implementierung, in der die Sprachaktivität des fernen Endes unter Verwendung des binären Spektrums detektiert wird, was eine besonders unkomplizierte Art und Weise ist, die Entscheidung darüber zu treffen, ob Sprache des fernen Endes vorhanden ist. Alternativ kann die Sprachaktivität des fernen Endes unter Verwendung einer anderen Technik, z. B. unter Verwendung der Frequenzspektren der Signale des fernen Endes und des nahen Endes, detektiert werden, wobei die Berechnung der binären Frequenzspektren in diesem Fall weggelassen wird, bis die Sprachaktivität des fernen Endes bestätigt worden ist.
-
Der Prozess der Sprachaktivitätsdetektion kann wiederholt werden, bis die Sprache des fernen Endes detektiert wird. Wenn eine Sprachaktivität des fernen Endes bestätigt wird, werden die binären Spektren des nahen Endes und des fernen Endes durch die Vergleichseinheit 319 verglichen, um ihre Ähnlichkeit zu bestimmen (Schritt S411). Es könnte irgendeine geeignete Vergleichsoperation genutzt werden, wobei aber eine besonders unkomplizierte Implementierung durch Aktivieren eines Zählers 318 zum Zählen der Anzahl angepasster Frequenz-Pins in den binären Spektren des fernen Endes und des nahen Endes erreicht werden kann. Dieser Zähler stellt eine Angabe der Korrelation zwischen den zwei Signalen bereit. BSs(c, l) = L·max{AND(BSx(c, l – i), BSd(c, l)} M – 1 / i = 0 (9)
-
Der Index ”d” bezieht sich hier auf das Signal des nahen Endes.
-
Somit ist BSs(c, l) in Abhängigkeit davon, ob eine '1' in dem c-ten Frequenz-Bin des binären Spektrums des Signals des nahen Endes zu einer '1' in dem c-ten Frequenz-Bin eines der binären Spektren der vorhergehenden M Rahmen des Signals des fernen Endes passt, entweder '0' oder L. L ist eine optionale Implementierungskonstante zum Erhöhen der Festkommagenauigkeit.
-
BS
s(c, l) kann als das binäre Ähnlichkeitsspektrum bezeichnet werden. Die Anzahl aktiver Bins in dem binären Ähnlichkeitsspektrum kann als der Ähnlichkeits-Bin-Zähler, SIC(l), bezeichnet werden und kann wie folgt geschätzt werden:
-
Der Gleitmittelwert des Ähnlichkeits-Bin-Zählers kann dann durch die Mittelungseinheit
317 geschätzt werden (Schritt S412):
wobei β
6, β
7 und ζ
6 Parameter sind, die für eine spezifische Implementierung auf geeignete Werte eingestellt werden können.
-
Die Anwesenheit eines Plattform-AEC kann dadurch bestätigt werden, dass der Gleitmittelwert des Ähnlichkeits-Bin-Zählers SIC(l) für M Rahmen ständig kleiner als ein im Voraus definierter Schwellenwert ζ6 ist. Somit wird die Ausgabe des Ähnlichkeits-Bin-Zählers an die Entscheidungslogik 315 übergeben (Schritt S413). Die Entscheidungslogik selbst ist durch Schritt S414 in 4 dargestellt. Wenn die Anwesenheit eines Plattform-AEC bestätigt worden ist (Schritt S415), kann der Anwendungs-AEC deaktiviert werden (Schritt S416). Andernfalls wird der aktuelle Betriebszustand des Anwendungs-AEC geprüft (Schritt S417), bevor der Anwendungs-AEC bei Bedarf freigegeben wird (Schritt S418). Daraufhin geht der Prozess zu dem nächsten Rahmen (Schritt S419).
-
Die Anwesenheit eines Plattform-AEC bedeutet nicht automatisch, dass ein Echo des fernen Endes erfolgreich aus dem Mikrofonsignal entfernt wird. Insbesondere kann das Betriebsverhalten eines Plattform-AEC in Abhängigkeit von der Wiedergabelautstärke variieren: Plattform-AECs neigen dazu, gut zu funktionieren, wenn die Wiedergabelautstärke niedrig ist, und schlechter, wenn die Wiedergabelautstärke höher ist. Somit kann es vorteilhaft sein, den Anwendungs-AEC zu deaktivieren, wenn die Wiedergabelautstärke niedrig ist, aber freizugeben, wenn die Wiedergabelautstärke hoch ist. Dies könnte durch Überwachen der Wiedergabelautstärke erreicht werden, wobei eine Vorgehensweise, die allgemeiner nützlich ist, das Überwachen des Erfolgs des Plattform-AEC beim Entfernen des Echos des fernen Endes ist. Eine Option, dies zu erreichen, ist einfach das ununterbrochene Ausführen des oben beschriebenen Algorithmus, da er als Teil der Prüfung auf Anwesenheit eines Plattform-AEC (wie durch Schritt S419 in 4 dargestellt ist) bestimmt, ob das Echo des fernen Endes erfolgreich entfernt worden ist.
-
Das Betriebsverhalten des hier beschriebenen Algorithmus ist in drei verschiedenen Schallechogebieten getestet worden: den Gebieten des Einzelsprechens des fernen Endes, des Gegensprechens und des Einzelsprechens des nahen Endes. Außerdem ist es über verschiedene Audiobetriebsarten getestet worden, wie etwa: 1) Freihand- oder Lautsprecherbetriebsart; 2) Kopfsprechhörer- oder Empfängerbetriebsart; und 3) Headsetbetriebsart. Um das Betriebsverhalten des Algorithmus zu bewerten, wurden zwei Metriken verwendet: Detektionsverzögerung und Fehlalarm. ”Detektionsverzögerung” ist die Zeit, die es dauert, die Anwesenheit eines AEC in der Plattformaudioschnittstelle zu bestätigen. ”Fehlalarm” ist die falsche Bestätigung eines Plattform-AEC. Das Betriebsverhalten des Algorithmus wurde über vier verschiedene Referenzplattformen getestet (wobei jede ein bestimmtes Modell einer Kommunikationsvorrichtung mit einem bestimmten Betriebssystem ist).
-
Für alle Tests wurden die Parameter auf die in Tabelle 1 (siehe unten) gegebenen Werte initialisiert. Die getesteten Kommunikationsvorrichtungen wiesen alle einen Plattform-AEC auf. Der vorgeschlagene Algorithmus deaktivierte den Anwendungs-AEC in allen Kommunikationsvorrichtungen. 5 stellt den Ähnlichkeitsindexzähler (SIC) während einer Gegensprechsitzung dar. In 5 enthält das Signal des nahen Endes reines Einzelsprechen des nahen Endes ohne irgendein Echo. Das Echo des fernen Endes ist durch den Plattform-AEC kompensiert worden. Somit ist der SIC mit Ausnahme weniger Stellen, wo er einen sehr niedrigen Wert (< 10) aufweist, durchgängig null. Da der SIC-Wert im Wesentlichen null ist, wird der Anwendungs-AEC nach M Sprachrahmen des fernen Endes deaktiviert. 6 stellt die mittlere Dauer der Sprache des fernen Endes, die von dem Algorithmus verwendet wurde, um die Anwesenheit eines AEC in der Plattformaudioschnittstelle zu bestätigen, dar. Der Algorithmus verwendet näherungsweise 1,17 s, 0,91 s und 0,8 s der Sprachdaten des fernen Endes, um die Anwesenheit des AEC in der Plattform in dieser Reihenfolge für die Freihand-, für die Kopfsprechhörer- und für die Headset-Audiobetriebsart zu bestätigen.
-
Der Algorithmus wurde ebenfalls mit Kommunikationsvorrichtungen getestet, die keinen Plattform-AEC aufwiesen. 7 stellt SIC-Werte dar, die für eine Vorrichtung, die keinen AEC in ihrer Audiostelle aufweist, für verschiedene Rahmen gemessen wurden. Da das Echo in der Mikrofonausgabe sehr dominant ist, ist der SIC auffällig sehr hoch. Somit deaktiviert der Algorithmus den Anwendungs-AEC nicht. Während der Headset-Betriebsart erzeugt der Algorithmus einen Fehlalarm und bestätigt er die Anwesenheit eines Plattform-AEC, wenn die Reflexionsdämpfung (ERL) größer als 60 dB ist, da das Echo in der Mikrofonausgabe nicht beobachtet wird. Eine ähnliche Entscheidung wurde in wenigen Fällen der Kopfsprechhörerbetriebsart beobachtet, falls ERL größer als 60 dB war. Diese Fehlalarme beeinflussen allerdings nicht die Gesamtsprachqualität, da sie nur in Situationen hoher ERL aufgetreten sind, wenn der Anwendungs-AEC ohnehin nicht erforderlich war.
-
In der folgenden Tabelle sind Beispiele geeigneter Werte für die verschiedenen in den obigen Gleichungen erwähnten Konstanten gegeben. Dies sind Werte, von denen die Erfinder festgestellt haben, dass sie in der Praxis funktionieren, wobei aber zu verstehen ist, dass sie nur Beispiele sind und dass die Erfindung nicht auf die Verwendung irgendwelcher bestimmten Werte beschränkt ist.
Schwellenwert | Wert |
α | 2 |
ζ1 | 3 |
ζ2 | 4,6·10–7 |
ζ3 | 100 |
ζ5 | 500 |
ζ6 | 4·β7 |
β1 | 0,0313 |
β2 | 0,0156 |
β3 | 0,6667·β2 |
β4 | 65534·β2 |
β5 | 4,6·10–8 |
β6 | 2,4·10–4 |
β7 | 6,1·10–5 |
L | 2·1014 |
M | 100 |
N | 32 |
Tabelle 1: Schwellenwerte und Konstanten
-
Allgemein können irgendwelche der oben beschriebenen Funktionen, Verfahren, Techniken oder Komponenten in Modulen, die Software, Firmware, Hardware (z. B. eine feste Logikschaltungsanordnung) oder irgendeine Kombination dieser Implementierungen verwenden, implementiert werden. Die Begriffe ”Modul”, ”Funktionalität”, ”Komponente”, ”Block” und ”Logik” können hier zur allgemeinen Darstellung von Software, Firmware, Hardware oder irgendeiner Kombination davon verwendet sein.
-
Im Fall einer Softwareimplementierung repräsentiert das Modul, die Funktionalität, die Komponente oder die Logik Programmcode, der spezifische Aufgaben ausführt, wenn er in einem Prozessor (z. B. in einer oder in mehreren CPUs) ausgeführt wird. In einem Beispiel können die hier beschriebenen Verfahren durch einen Computer ausgeführt werden, der mit Software in maschinenlesbarer Form konfiguriert ist, die in einem computerlesbaren Medium gespeichert ist. Eine solche Konfiguration eines computerlesbaren Mediums ist ein Signalträgermedium und so konfiguriert, dass sie die Anweisungen (z. B. als eine Trägerwelle) wie etwa über ein Netz zu der Computervorrichtung sendet. Das computerlesbare Medium kann ebenfalls als ein nicht vorübergehendes computerlesbares Ablagemedium konfiguriert sein und ist somit kein Signalträgermedium. Beispiele eines computerlesbaren Ablagemediums enthalten einen Schreib-Lese-Speicher (RAM), einen Nur-Lese-Speicher (ROM), eine optische Platte, einen Flash-Speicher, einen Festplattenspeicher und andere Speichervorrichtungen, die magnetische, optische und andere Techniken verwenden können, um Anweisungen oder andere Daten zu speichern, und auf die durch eine Maschine zugegriffen werden kann.
-
Die Software kann die Form eines Computerprogramms, das Computerprogrammcode zum Konfigurieren eines Computers zum Ausführen der Bestandteile der beschriebenen Verfahren umfasst, oder die Form eines Computerprogramms, das Computerprogrammcodemittel umfasst, die dafür ausgelegt sind, alle Schritte irgendwelcher der hier beschriebenen Verfahren auszuführen, wenn das Programm in einem Computer ausgeführt wird, und wobei das Computerprogramm in einem computerlesbaren Medium verkörpert sein kann, aufweisen. Der Programmcode kann in einem oder in mehreren computerlesbaren Medien gespeichert sein. Die Merkmale der hier beschriebenen Techniken sind plattformunabhängig, d. h., die Techniken können in einer Vielzahl von Computerplattformen mit einer Vielzahl von Prozessoren implementiert werden.
-
Der Fachmann auf dem Gebiet erkennt ebenfalls, dass die gesamte Funktionalität, die gesamten Techniken oder die gesamten Verfahren oder ein Teil davon durch eine dedizierte Schaltung, durch eine anwendungsspezifische integrierte Schaltung, durch eine programmierbare Logikanordnung, durch eine frei programmierbare Logikanordnung oder dergleichen ausgeführt werden kann. Zum Beispiel kann das Modul, die Funktionalität, die Komponente oder die Logik Hardware in Form einer Schaltungsanordnung umfassen. Eine solche Schaltungsanordnung kann Transistoren und/oder andere Hardwareelemente, die in einem Herstellungsprozess verfügbar sind, enthalten. Diese Transistoren und/oder anderen Elemente können beispielhaft verwendet sein, um eine Schaltungsanordnung oder Strukturen zu bilden, die einen Speicher, wie etwa Register, Flipflops oder Zwischenspeicher, logische Operatoren wie etwa boolesche Operationen, mathematische Operatoren wie etwa Addierer, Multiplizierer oder Verschiebeeinrichtungen und Verdrahtungen implementieren und/oder enthalten. Solche Elemente können als kundenangepasste Schaltungen oder Standardzellenbibliotheken, Makros oder andere Abstraktionsebenen vorgesehen sein. Solche Elemente können in einer spezifischen Anordnung miteinander verbunden sein. Das Modul, die Funktionalität, die Komponente oder die Logik kann eine Schaltungsanordnung, die eine Festfunktion ist, und eine Schaltungsanordnung, die programmiert werden kann, um eine Funktion oder Funktionen auszuführen, enthalten; diese Programmierung kann von einer Firmware- oder Softwareaktualisierung oder von einem Steuermechanismus bereitgestellt werden. In einem Beispiel weist die Hardwarelogik eine Schaltungsanordnung auf, die eine Festfunktionsoperation, eine Zustandsmaschine oder einen Prozess implementiert.
-
Außerdem soll Software, die die Konfiguration von Hardware, die ein Modul, eine Funktionalität, eine Komponente oder eine Logik, die oben beschrieben sind, implementiert, ”beschreibt” oder definiert, wie etwa HDL-Software (Hardwarebeschreibungssprachen-Software), wie sie für den Entwurf integrierter Schaltungen oder zum Konfigurieren programmierbarer Chips, damit sie die gewünschten Funktionen ausführen, verwendet wird, enthalten sein. Das heißt, es kann ein computerlesbares Ablagemedium geschaffen werden, auf dem computerlesbarer Programmcode zum Erzeugen einer Verarbeitungseinheit, die dafür konfiguriert ist, irgendeines der hier beschriebenen Verfahren auszuführen, oder zum Erzeugen einer Verarbeitungseinheit, die irgendwelche hier beschriebenen Vorrichtungen umfasst, codiert ist.
-
Die Begriffe 'Prozessor' und 'Computer” sind hier zur Bezugnahme auf irgendeine Vorrichtung oder auf irgendeinen Abschnitt davon mit Verarbeitungsfähigkeit, so dass sie bzw. er Anweisungen ausführen kann, oder auf eine dedizierte Schaltung, die die gesamte Funktionalität oder die gesamten Verfahren oder einen Teil davon oder irgendeine Kombination davon ausführen kann, verwendet.
-
Obwohl der Gegenstand in einer für strukturelle Merkmale und/oder für methodologische Tätigkeiten spezifischen Sprache beschrieben worden ist, ist der in den beigefügten Ansprüchen definierte Gegenstand selbstverständlich nicht notwendig auf die oben beschriebenen spezifischen Merkmale oder Tätigkeiten beschränkt. Vielmehr sind die oben beschriebenen spezifischen Merkmale und Tätigkeiten als beispielhafte Formen der Implementierung der Ansprüche offenbart. Selbstverständlich können sich die oben beschriebenen Vorzüge und Vorteile auf ein Beispiel oder auf mehrere Beispiele beziehen. Wie für den Fachmann hervorgeht, kann irgendein hier gegebener Bereich oder Wert erweitert oder geändert werden, ohne dass die gewünschte Wirkung verlorengeht. Die Schritte der hier beschriebenen Verfahren können in irgendeiner geeigneten Reihenfolge oder bei Bedarf gleichzeitig ausgeführt werden.
-
Der Anmelder offenbart hier jedes hier beschriebene einzelne Merkmal und irgendeine Kombination zweier oder mehrerer solcher Merkmale in dem Umfang, dass diese Merkmale oder Kombinationen auf der Grundlage der vorliegenden Beschreibung im Licht der allgemein üblichen Kenntnis des Fachmanns auf dem Gebiet als Ganzes ausgeführt werden können, getrennt, unabhängig davon, ob diese Merkmale oder Kombinationen von Merkmalen irgendwelche hier offenbarten Probleme lösen und ohne Beschränkung an den Schutzumfang der Ansprüche. Der Anmelder gibt an, dass Aspekte der vorliegenden Erfindung aus irgendeinem solchen einzelnen Merkmal oder aus irgendeiner Kombination von Merkmalen bestehen können. Angesichts der vorstehenden Beschreibung ist für den Fachmann auf dem Gebiet offensichtlich, dass im Schutzumfang der Erfindung verschiedene Änderungen vorgenommen werden können.