[go: up one dir, main page]

DE69222782T2 - Verfahren und vorrichtung für die erzeugung von vokal-harmonien - Google Patents

Verfahren und vorrichtung für die erzeugung von vokal-harmonien

Info

Publication number
DE69222782T2
DE69222782T2 DE69222782T DE69222782T DE69222782T2 DE 69222782 T2 DE69222782 T2 DE 69222782T2 DE 69222782 T DE69222782 T DE 69222782T DE 69222782 T DE69222782 T DE 69222782T DE 69222782 T2 DE69222782 T2 DE 69222782T2
Authority
DE
Germany
Prior art keywords
estimate
input vocal
vocal signal
signal
octave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69222782T
Other languages
English (en)
Other versions
DE69222782D1 (de
Inventor
John Bertsch
Brian Gibson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IVL Technologies Ltd
Original Assignee
IVL Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IVL Technologies Ltd filed Critical IVL Technologies Ltd
Application granted granted Critical
Publication of DE69222782D1 publication Critical patent/DE69222782D1/de
Publication of DE69222782T2 publication Critical patent/DE69222782T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • G10H1/366Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems with means for modifying or correcting the external signal, e.g. pitch correction, reverberation, changing a singer's voice
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10GREPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
    • G10G7/00Other auxiliary devices or accessories, e.g. conductors' batons or separate holders for resin or strings
    • G10G7/02Tuning forks or like devices
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H5/00Instruments in which the tones are generated by means of electronic generators
    • G10H5/005Voice controlled instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/245Ensemble, i.e. adding one or more voices, also instrumental voices
    • G10H2210/251Chorus, i.e. automatic generation of two or more extra voices added to the melody, e.g. by a chorus effect processor or multiple voice harmonizer, to produce a chorus or unison effect, wherein individual sounds from multiple sources with roughly the same timbre converge and are perceived as one
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/005Non-interactive screen display of musical or status data
    • G10H2220/011Lyrics displays, e.g. for karaoke applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/025Envelope processing of music signals in, e.g. time domain, transform domain or cepstrum domain
    • G10H2250/031Spectrum envelope processing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/261Window, i.e. apodization function or tapering function amounting to the selection and appropriate weighting of a group of samples in a digital signal within some chosen time interval, outside of which it is zero valued
    • G10H2250/285Hann or Hanning window
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/631Waveform resampling, i.e. sample rate conversion or sample depth conversion

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein eine Vorrichtung und ein Verfahren zum Generieren von Musik-Harmonien, insbesondere eine Vorrichtung und ein Verfahren zum Generieren von Vokal-Harmonien.
  • Hintergrund der Erfindung
  • Musik-Harmonie-Generatoren sind Maschinen, die arbeiten, um einen Satz von Harmoniesignalen zu erzeugen, die einem gegebenen Musik- Eingangssignal entsprechen. Mit einer solchen Maschine kann ein Musiker einen Melodieteil spielen, während die Maschine die Harmonieteile generiert, so daß ein Musiker sich wie mehrere anhören kann. Harmoniegeneratoren, die mit Signalen aus Musikinstrumenten arbeiten, beispielsweise Gitarren oder Synthesizern, sind seit zahlreichen Jahren entwickelt worden. Solche Geräte arbeiten im allgemeinen so, daß sie ein Eingangssignal abtasten und dessen Frequenz verschieben, um die Harmonien zu generieren.
  • In einem periodischen Musiksignal gibt es stets eine Grundfrequenz, die die spezielle Tonhöhe des Signals festlegt, und zahlreiche Harmonische, die für den Charakter des Musiksignals sorgen. Es ist die spezielle Kombination von harmonischen Frquenzen bezüglich der Grundfrequenz, die beispielsweise dafür sorgt, daß eine Gitarre und eine Violine, mit denen die gleiche Note gespielt wird, unterschiedlich klingen. Bei einem Musikinstrument wie einer Gitarre, einer Flöte, einem Saxophon oder einem Keyboard wird, wenn die Höhe einer Note variiert, die Spektral-Hüllkurve der Grundfrequenz und der Harmonischen erweitert oder zusammengezogen, wenn die Tonhöhe nach oben oder nach unten verschoben wird. Deshalb kann man bei Musikinstrumenten Harmonie-Noten dadurch erzeugen, daß man Klang vom Instrument abtastet und den abgetasteten Klang mit entweder höherer oder niedrigerer Geschwindigkeit abspielt, ohne daß die Harmonie-Noten künstlich klingen. Wenngleich dieses Verfahren zum Generieren von Harmonien für Musikinstrumente geeignet ist, funktioniert es beim Erzeugen von Vokal-Harmonischen nicht gut.
  • In einem Vokal-Signal gibt es typischerweise eine Grundfrequenz, welche die Tonhöhe einer Note, die eine Person singt, festlegt, außerdem einen Satz von harmonischen Frequenzen, die der Note Charakter und Timbre verleihen. Im Gegensatz zu einem Musikinstrument bleibt, wenn sich die Tonhöhe eines Vokal-Signals ändert, die Spektral-Hüllkurve der Harmonischen in der gleichen Form, jedoch ändern sich möglicherweise die individuellen Frequenzen, welche die Spektral-Hüllkurve bilden, in ihrer Amplitude. Deshalb ist das Erzeugen von Harmoniesignalen für die Stimme durch Abtasten einer Note, wenn diese gesungen wird, und Variieren ihrer Frequenz, deshalb nicht natürlich, weil jenes Verfahren die Form der Spektral- Hüllkurve variiert. Um Harmonie-Noten für ein Vokal-Signal zu generieren, ist ein Verfahren erforderlich, mit dem die Frequenz der Grundwelle variiert wird, während die gesamte Form der Spektral-Hüllkurve erhalten bleibt.
  • Die Erfinder haben herausgefunden, daß das Verfahren, welches in dem Artikel von K. Lent "An Efficient Method for Pitch Shifting Digitally Sampled Sounds", Computer Music Journal, Band 13, Nr. 4, Winter Seiten 65-71 (1989) (im folgenden als Lent-Verfahren bezeichnet) dargelegt ist, sich besonders gut zur Verwendung beim Erzeugen von Vokal- Harmonischen eignet, weil das Verfahren die Form der Spektral-Hüllkurve beibehält. Dieses Verfahren verschiebt die Tonhöhe eines digital abgetasteten Signals dadurch, daß es einen Teil des Signals extrahiert und den extrahierten Teil mit einer vorbestimmten Geschwindigkeit kopiert. Dies beinhaltet das Analysieren eines Eingangs-Vokalsignals, um ein Harmoniesignal zu erzeugen, in dem das Eingangs-Vokalsignal abgetastet und das abgetastete Eingangs-Vokalsignal in einem digitalen Speicher gespeichert wird, eine laufende Abschätzung der Grundfrequenz des Eingabe-Vokalsignals ermittelt wird, die Grundfrequenz des Harmoniesignals basierend auf der Grundfrequenz des Eingangs-Vokalsignals ermittelt wird, Triggersignale erzeugt werden, deren Frequenzen im wesentlichen denen des Harmoniesignals gleichen, Teile des Eingangs-Vokalsignals extrahiert werden und die extrahierten Teile mit einer Geschwindigkeit kopiert werden, die im wesentlichen gleich der Grundfrequenz des Harmoniesignals ist.
  • Allerdings ist die aktuelle Implementierung des Lent-Verfahrens, wie sie in der genannten Druckschrift dargelegt ist, vom Rechenaufwand her komplex und läßt sich nur schwierig mit einer billigen Rechneranlage auf Echtzeitbasis implementieren. Darüber hinaus fordert das Lent-Verfahren, daß die Grundfrequenz eines Signals exakt bekannt ist. Ein Problem bei der Erzeugung von Harmoniesignalen für eine Stimme liegt jedoch in dem Umstand begründet, daß Vokalsignale schwierig analysierbar sind und das Lent- Verfahren das Problem der genauen Festlegung der Grundfrequenz eines komplexen Vokal-Signals unter Beisein von Rauschen nicht behandelt. Die Grundfrequenz einer gesungenen, gegebenen Note kann zum Beispiel sehr stark schwanken, was es einem Harmoniegenerator erschwert, die Grundfrequenz zu bestimmen und die richtigen Harmonie-Noten zu generieren.
  • Deshalb sollte das zum Generieren von Vokal-Harmonienoten durch Verschiebung der Tonhöhe eines digital abgetasteten Vokal-Signals im wesentlichen im Echtzeitbetrieb arbeiten und billige Rechnereinrichtungen verwenden. Diese Methode sollte folglich ein Verfahren zum genauen Analysieren eines Eingangs-Vokalsignals bereitstellen, um ein mehrteiliges Vokal-Signal zu generieren.
  • Offenbarung der Erfindung
  • Die vorliegende Erfindung wird durch die beigefügten Ansprüche definiert und umfaßt ein Verfahren und eine Vorrichtung zum Analysieren eines Eingangs-Vokalsignals, welches repräsentativ für eine Musiknote ist, um mehrere Harmoniesignale zu erzeugen, die mit dem Eingangs-Vokalsignal kombiniert werden, um ein mehrstimmiges Signal zu erzeugen. Das Verfahren beinhaltet die Schritte der reiterierenden Bestimmung einer laufenden Abschätzung der Grundfrequenz des Eingangssignals und des Testens der laufenden Abschätzung basierend auf einem Satz von Parametern, die aus einer früheren Abschätzung der Grundfrequenz abgeleitet sind. Es wird eine Referenznote zugeordnet, welche der laufenden Abschätzung entsprechen soll, wenn die laufende Abschätzung die korrekte Abschätzung ist. Es werden mehrere Harmonienoten basierend auf der Referenznote ausgewählt, und es werden mehrere Harmoniesignale erzeugt, so daß sie den mehreren Harmonienoten entsprechen. Das Eingangs-Vokalsignal wird mit den mehreren Harmoniesignalen kombiniert, um das mehrstimmige Signal zu bilden. In der bevorzugten Ausführungsform werden die mehreren Harmoniesignale erzeugt, indem das Eingangs-Vokalsignal durch eine stückweise lineare Approximation eines Hanning-Fensters skaliert wird, um einen Teil des Eingangs-Vokalsignals zu extrahieren, um anschließend den extrahierten Teil mit mehreren Geschwindigkeiten zu kopieren, die im wesentlichen gleich den Grundfrequenzen jedes der Harmoniesignale sind.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm eines Vokal-Harmoniegenerators gemäß der Erfindung;
  • Fig. 2 ist ein Ablaufdiagramm, welches die Schritte eines Verfahrens zum Generieren eines mehrstimmigen Signals gemäß der Erfindung veranschaulicht;
  • Fig. 3 ist ein Flußdiagramm, welches die Schritte eines Verfahrens zum Bestimmen, ob eine Note beginnt, darstellt;
  • Fig. 4 ist ein Ablaufdiagramm, welches die Schritte eines Verfahrens zum Bestimmen, ob eine Note fortgesetzt wird, zeigt;
  • Fig. 5 ist ein Flußdiagramm zum Nachweisen von Oktav-Fehlern, welches bei dem erfindungsgemäßen Verfahren benutzt wird;
  • Fig. 6 ist ein Diagramm, welches zeigt, wie ein Harmoniesignal erzeugt wird;
  • Fig. 7 zeigt die Schritte zum Generieren einer stückweisen linearen Approximation eines Hanning-Fensters gemäß der Erfindung;
  • Fig. 8 ist ein Blockdiagramm eines Signalverarbeitungs-Chips gemäß der Erfindung;
  • Fig. 9 ist ein Blockdiagramm eines Tonhöhenverschiebers, der in dem Signalverarbeitungs-Chip enthalten ist; und
  • Fig. 10 ist eine graphische Darstellung eines Eingangssignals, welches repräsentativ für einen Zischlaut ist.
  • Detaillierte Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm eines Vokal-Harmoniegenerators 10 gemäß der Erfindung. Der Vokal-Harmoniegenerator 10 empfängt ein Eingangs- Vokalsignal 20 und generiert ein mehrstimmiges Ausgangssignal 22, welches ein Ausgangssignal 22a enthält, welches im wesentlichen auf der gleichen Tonhöhe wie das Eingangs-Vokalsignal 20 erklingt, und bis zu vier Harmonienoten 22b, 22c, 22d und 22e mit Tonhöhen, die zu dem Eingangs- Vokalsignal 20 harmonisch in Beziehung stehen. Der Vokal- Harmoniegenerator 10 empfängt das Eingangs-Vokalsignal 20 über ein Mikrophon 30 oder von einer anderen Quelle, beispielsweise einem Tonbandgerät, welches ein entsprechendes elektrisches Signal erzeugt, das über eine Leitung 34 in einen Eingangsfilterblock 32 gelangt. Der Filterblock 32 enthält vorzugsweise ein Antialiasing-Filter, welches den Anteil hochfrequenten Rauschens verringert, der von dem Mikrophon 30 aufgenommen wird. Nach dem Filtern durch den Filterblock 32 wird das Eingangs-Vokalsignal 20 durch einen Analog-Digital-(A/D-)Umsetzer 36 aus einem analogen in digitales Format umgesetzt, wozu der Wandler 36 über eine Leitung 38 an den Filterblock 32 gekoppelt ist.
  • Der A/D-Umsetzer 36 ist mit einem Signalverarbeitungsblock 50 über eine Leitung 42 gekoppelt, über die die digitalen Signale geleitet werden, die repräsentativ für das Eingangs-Vokalsignal 20 sind. Der Signalverarbeitungsblock 50 speichert die digitalen Eingangssignale in einem kreisförmigen Feld innerhalb eines Schreib-/Lese-Speichers (RAM) 44, der über eine Leitung 46 mit dem Signalverarbeitungsblock 50 gekoppelt ist. Außerdem ist an die Leitung 56 ein Festspeicher (ROM) 48 angeschlossen. Der Signalverarbeitungsblock 50 generiert ein mehrstimmiges Signal, welches die Harmoniesignale enthält, indem er einen Teil des Eingangs-Vokalsignals 20, welches in dem RAM 44 gespeichert ist, extrahiert und den extrahierten Teil mit mehreren Geschwindigkeiten kopiert, die im wesentlichen den Grundfrequenzen jedes der Harmoniesignale gleichen, wie im folgenden beschrieben wird. Eine Leitung 52 verbindet den Signalverarbeitungsblock 50 mit einem Mikroprozessor 40, so daß der Mikroprozessor einen Satz von Parametern liefern kann, die von dem Signalverarbeitungsblock 50 dazu benutzt werden, die Harmoniesignale zu generieren. Der Mikroprozessor 40 ist vorzugsweise ein Chip mit Acht-Bit-Architektur, Model Nr. 80C31 der Firma Intel Corporation. An den Mikroprozessor 40 sind über eine Leitung 41 ein externer Schreib-/Lese-Speicher (RAM) 40a und ein externer Festspeicher (ROM) 40b angeschlossen.
  • Der Ausgang des Signalprozessors 50 ist über eine Leitung 56 an einen Digital-Analog-(D/A-)Wandler 54 gekoppelt, der die Harmoniesignale aus einem digitalen Format in ein Analogformat umsetzt. Ein Ausgangssignal des D/A-Wandlers 54 ist über Leitungen 62 an ein Paar Rekonstruktionsfilter 60a, 60b gekoppelt. Diese Ausgangsfilter beseitigen jegliches hochfrequentes Rauschen, welches möglicherweise den Harmoniesignalen im Signalverarbeitungsblock 50 hinzugefügt wurde. Ein Mischer 64 empfängt das analoge mehrstimmige Signal von den Ausgangsfiltern 60a und 60b über ein Paar Leitungen 66a und 66b, sowie das Eingangs-Vokalsignal auf der Leitung 34. Der Mischer 64 ist an den Mikroprozessor 60 über eine Leitung 68 gekoppelt und steuert die Balance des mehrstimmigen Signals zwischen einem linken Audioausgang 70a und einem rechten Audioausgang 70b, ebenso wie die Balance des Eingangs-Vokalsignals bezüglich der Harmoniesignale. Ein Kopfhörerverstärker 72 ist an den Ausgang des Mischers 64 gekoppelt und liefert über eine Leitung 74 ein Kopfhörer- Audioausgangssignal.
  • Ebenfalls enthalten in dem Vokal-Harmoniegenerator 10 ist ein Satz von Eingabeschaltern 76, die es einem Musiker gestatten, den Harmoniegenerator 10 zu bedienen und seinen Betrieb einzustellen. Die Eingabeschalter 76 sind mit dem Mikroprozessor 40 über eine Leitung 78 gekoppelt. Eine Anzeigeeinheit 80 versorgt den Bediener des Harmoniegenerators 10 mit einer Anzeige darüber, wie der Harmoniegenerator für den Betrieb eingestellt wird. Die Anzeige 80 ist mit dem Mikroprozessor 40 über eine Leitung 82 gekoppelt.
  • Fig. 2 zeigt die Logik, die in einem allgemein mit 100 bezeichneten Verfahren zum Analysieren des Eingangs-Vokalsignals verwendet wird, um den Satz von Harmoniesignalen zu erzeugen, der mit dem Eingangs-Vokalsignal kombiniert werden, um das mehrstimmige Signal gemäß der Erfindung zu erzeugen. Das Verfahren beginnt bei einem Startblock 105 und geht weiter zu einem Block 110, wo das Eingangs-Vokalsignal abgetastet und in dem (nicht gezeigten) kreisförmigen Feld innerhalb des RAM 44 abgespeichert wird. Parallel zu und unabhängig von dem Block 110 arbeiten zwei Unterroutinen, die im Block 112 und dem Block 111 dargestellt sind. Der Block 112 dient zum Bestimmen einer Abschätzung der Grundfrequenz, des Pegels des Eingangs-Vokalsignals, und ob das Eingangs-Vokalsignal periodisch ist. Ist das Eingangssignal nicht periodisch, gibt der Block 112 eine Anzeige zurück, wonach das Eingangs-Vokalsignal nicht periodisch ist, außerdem eine Anzeige, ob das Eingangs-Sprachsignal repräsentativ für einen Zischlaut ist. Zischlaute sind Töne wie "sch", "tsch", "s", etc. Damit die Harmoniesignale natürlich klingen, sollte die Frequenz dieser Typen von Klängen nicht verschoben werden. Daher ist es nötig, sie nachzuweisen und den Tonhöhenverschiebealgorithmus zu umgehen, wie im folgenden noch beschrieben wird. Die Arbeitsweise des Blocks 112 ist in der der Anmelderin gehörigen US-Patentschrift 4 688 464 beschrieben, mit der Ausnahme des Verfahrens zum Nachweisen von Zischlauten, welches weiter unten beschrieben wird. Kurz gesagt, sucht der Block 112 nach der Grundfrequenz des Eingangs-Vokalsignals basierend auf der Zeit, die das Eingangs- Vokalsignal braucht, um eine Reihe abwechselnd positiver und negativer Schwellenwerte zu kreuzen.
  • Der Block 111, der ebenfalls parallel zu dem Block 110 arbeitet, ruft eine Oktavenfehler-Unterroutine 400 auf. Wie weiter unten noch ausgeführt werden wird, bestimmt die Unterroutine 400, ob die Grundfrequenz des Eingangs-Vokalsignals, die durch den Block 112 ermittelt wurde, eine Oktave niedriger liegt als die aktuelle Grundfrequenz des Eingangs- Vokalsignals. Während das Lent-Verfahren gut bei der Erzeugung von Vokal-Harmonien arbeitet, ist es besonders empfindlich für Oktavenfehler, bei denen bezüglich der Oktave der Note, die der Musiker gerade singt, ein falscher Nachweis erfolgt. Deshalb werden zusätzliche Prüfungen gemacht, um sicherzugehen, daß eine korrekte Oktavenbestimmung erfolgt ist. Die Blöcke 111 und 112 stellen Routinen dar, die während der Implementierung des Verfahrens 100 kontinuierlich ablaufen.
  • Nach dem Block 110 geht das Verfahren weiter zum Block 114, der eine Unterroutine 200 aufruft. Die Unterroutine 200 ermittelt, ob das Eingangs- Vokalsignal, welches im Block 110 abgetastet wurde, den Beginn einer neuen von dem Musiker gesungenen Note markiert. Die Ergebnisse der Unterroutine 200 werden im Entscheidungsblock 115 geprüft. Wenn die Antwort auf den Entscheidungsblock 115 Nein lautet, was bedeutet, daß keine neue Note beginnt, geht das Verfahren zu dem Block 118, wo ein Noten-"Aus"-Zähler erhöht und ein Noten-"Ein"-Zähler gelöscht wird. Der Noten-"Aus"-Zähler verfolgt die Länge der Zeitspanne nach dem Einsingen der letzten Note in den Harmoniegenerator. In ähnlicher Weise verfolgt der Noten-"Ein"-Zähler die Zeitspanne, in der eine laufende Note von dem Musiker bereits gesungen wurde. Nach dem Block 118 geht das Verfahren zurück zum Block 114 im Rahmen einer Schleife, bis die Antwort aus dem Entscheidungsblock 115 Ja lautet. Ist von dem Entscheidungsblock 115 erst einmal festgestellt, daß eine Note beginnt, so geht das Verfahren weiter zum Block 119, wo eine veränderliche, laufende Note dem Eingangs- Vokalsignal entsprechend zugeordnet wird. Wenn zum Beispiel das Eingangs-Vokalsignal eine Grundfrequenz von etwa 440 Hertz hatte, würde das Verfahren der Variablen "laufenden Note" die Note A zuweisen. Die Variable "laufende Note" wird dann als Referenz bei der Erzeugung von Harmoniesignalen verwendet.
  • Für die Zuordnung, welche Musiknote der Variablen "laufende Note" zuzuordnen ist, wird eine Nachschlagetabelle verwendet, die in dem mit dem Mikroprozessor 40 gekoppelten externen ROM 40b gespeichert ist. In der Nachschlagetabelle sind die Noten einer gleichtemperierten Tonleiter enthalten, gespeichert als Bereiche von Grundfrequenzen. Bei jeder gegebenen Eingabe gibt es folglich eine entsprechende Note aus der Tabelle, die der Variablen "laufende Note" zugewiesen wird. In der bevorzugten Ausführungsform erstreckt sich der Frequenzbereich, der einer gegebenen Note entspricht, über +/- 50 Hundertstel (100 Teile eines Halbtons) auf jeder Seite der Grundfrequenz, um geringfügige Schwankungen in der Grundfrequenz des Eingangs-Vokalsignals zuzulassen, wenn die laufende Note zugewiesen wird. Wenn zum Beispiel der Musiker erniedrigt gesungen hat, so daß das Eingangs-Vokalsignal eine Grundfrequenz von 435 Hertz hatte, würde das Verfahren der Variablen "laufende Note" immer noch die Note A zuweisen.
  • Nach dem Block 119 geht das Verfahren zum Block 120, wo die Harmonienoten bestimmt werden, die der Variablen "laufende Note" entsprechen. Bei der bevorzugten Ausführungsform umfaßt der Block 120 eine in dem RAM 40a gespeicherte Nachschlagetabelle, welche die Perioden für sämtliche Harmonienoten enthält, die jeder möglichen Periode der "laufenden Note" entsprechen, wie unten noch beschrieben wird. Unten ist die Nachschlagetabelle abgebildet, die von der vorliegenden Erfindung dazu eingesetzt wird, die Harmoniesignale zu generieren.
  • Bei der bevorzugten Ausführungsform enthält die obige Harmonietabelle nicht die Wörter wie "E oberhalb", sondern enthält stattdessen die Anzahl von Hundertsteln, die die Harmonienoten von der "laufenden Note" entfernt sind. Wenn zum Beispiel die "laufende Note" C ist, dann enthält der RAM 44 +400 in der Tabelle für Harmonie 1 (400 Hundertstel von C entspricht viei- Halbtönen oder E oberhalb). Die Harmoniesignale werden erzeugt durch Nachschauen der Perioden für die Harmonienoten, die einer gegebenen "laufenden Note" entsprechen. Wenn zum Beispiel die "laufende Note" F ist, schaut das Verfahren nach der Ermittlung, daß die Harmonienoten A oberhalb, C oberhalb, D oberhalb und F unterhalb sind, anschließend die Perioden jeder der Harmonienoten nach. Die Perioden der harmonischen Signale werden dann von einem Paar von Tonhöhenverschiebern dazu benutzt, das mehrstimmige Signal zu erzeugen, wie es unten beschrieben wird.
  • Wenn der Musiker entweder erhöht oder erniedrigt singt, ist es möglich, die Harmonienoten so einzustellen, daß sie entsprechend erhöht oder erniedrigt sind, anstatt sie so einzustellen, daß sie mit der nächstgelegenen richtigen Tonhöhe harmonisieren. Wenn der Musiker zum Beispiel eine "laufende Note" "E" auf der Tonhöhe singt, sollte die Harmonie 1 exakt dem G oberhalb von E entsprechen. Wenn allerdings der Musiker erhöht singt, beispielsweise um +30 Hundertstel (das heißt 30/100 eines Halbtons), wird die Harmonienote berechnet als G oberhalb +30 Hundertstel (das heißt 30/100 eines Halbtonschritts).
  • Eine zweite Option bei der Auswahl der Harmonienoten ist eine Option "keine Änderung". Mit dieser Option konfiguriert sich die Harmonietabelle folgendermaßen:
  • Wie man sieht, ändert sich jede zweite Harmonienote nicht. Dies ermöglicht es dem Musiker, der "laufenden Note" ein gewisses Vibrato hinzuzufügen, ohne daß sich die Harmonienoten stark ändern. Der Hystereseeffekt sorgt für Stabilität im mehrstimmigen Signal, welche dieses natürlicher klingen läßt.
  • Durch Einbringen der Harmonietabelle in den RAM 44 ist es möglich, daß der Musiker eine Reihe von Optionen für die speziellen Typen erzeugter Harmonien programmiert, abhängig von dem gewünschten Klangtyp (angemerkt sei, daß in dem gesamten vorliegenden Zusammenhang die Grundfrequenz einer Note und ihre Periodendauer einfach das Inverse zueinander bilden, wobei der eine oder der andere Ausdruck aus Gründen der Klarheit verwendet wird, wo es angemessen erscheint).
  • Nach dem Bestimmen der Harmonienoten, die der "laufenden Note" entsprechen, geht das Verfahren zu dem Block 122, wo das mehrstimmige Signal einschließlich der "laufenden Note" und der Harmonienoten erzeugt wird. Die Arbeitsweise des Blocks 122 wird weiter unten näher erläutert.
  • Nach dem Block 122 geht das Verfahren zum Block 124, der das mehrstimmige Signal ausgibt.
  • Nach dem Block 124 geht das Verfahren zum Block 126, wo ein akzeptierbarer Bereich von Frequenzen für die nächste Note ermittelt wird. Bei der bevorzugten Ausführungsform wird, nachdem die Variable "laufende Note" zugewiesen wurde, damit sie der Grundfrequenz des Eingangs-Vokalsignals im Block 119 entspricht, der akzeptierbare Bereich von Grundfrequenzen anfangs so eingestellt, daß er der Grundfrequenz der "laufenden Note" +/- 25% entspricht. Durch Zuordnen eines akzeptierbaren Frequenzbereichs für die nächste Note läßt sich für die "laufende Note" jedesmal eine ausgebildete Zuordnung vornehmen. Diese Logik basiert auf der Annahme, daß eine menschliche Stimme in der Lage ist, Noten nur mit einer begrenzten Geschwindigkeit zu ändern. Wenn daher die Grundfrequenz, wie sie durch den Block 112 ermittelt wird, aus dem akzeptierbaren Bereich von Frequenzen um +/- 25% herausfällt, geht das Verfahren davon aus, daß das Erkennen der Grundfrequenz durch den Block 112 fehlerhaft ist.
  • Nach dem Block 126 geht das Verfahren weiter zum Block 127, der eine Unterroutine 300 aufruft, welche ermittelt, ob die "laufende Note" noch weiter von dem Musiker gesungen wird oder beendet wurde. Die Arbeitsweise der Unterroutine 300 wird weiter unten vollständig beschrieben. Nach der Rückkehr aus der Unterroutine 300 ermittelt der Entscheidungsblock 128, ob die Unterroutine 300 gefunden hat, daß die "laufende Note" fortgesetzt wird. Lautet die Antwort des Entscheidungsblocks 128 Ja, so geht das Verfahren weiter zum Block 130, welcher den Note-"Ein-Zähler erhöht. Nach dem Block 130 geht das Verfahren in der Schleife zurück zum Block 119, der die "laufende Note" aktualisiert, die Harmonienoten bestimmt und das mehrstimmige Signal in der zuvor beschriebenen Weise generiert. Wenn die Antwort im Entscheidungsblock 128 Nein lautet, geht das Verfahren zum Block 132, wo der Note-"Ein"-Zähler gelöscht und der Note-"Aus"- Zähler auf 1 gesetzt wird. Nach dem Block 132 geht das Verfahren weiter zu einem Block 134, in welchem ein Paar (nicht gezeigte) Tonhöhenverschieber gesperrt wird. Nach dem Block 134 geht das Verfahren in der Schleife zurück zum Block 114, um mit dem Nachschauen nach einer neuen Note in dem Eingangs-Vokalsignal zu beginnen. Das Verfahren 100 fährt mit dem Nachschauen nach einer neuen Note, die in dem Eingangs- Vokalsignal beginnt, fort, ordnet der "laufenden Note" einen Wert zu, ermittelt die Harmonienoten, generiert das mehrstimmige Signal und berechnet den akzeptierbaren Frequenzbereich für die nächste Note, so lange der Musiker mit dem Singen fortfährt.
  • Fig. 3 ist ein detaillierteres Flußdiagramm der Unterroutine 200, die ermittelt, ob der Musiker eine neue Note singt, wie in Block 114 in Fig. 2 gezeigt ist. Die Unterroutine 200 beginnt im Block 205 und geht weiter zum Block 210, wo die Grundfrequenz und der Pegel des Eingangs-Vokalsignals von dem Block 112 gelesen werden (siehe Fig. 2). Nach dem Block 210 geht die Unterroutine zum Entscheidungsblock 212, welcher ermittelt, ob der Pegel des Eingangs-Vokalsignals oberhalb eines vorbestimmten Schwellenwerts liegt. Der Schwellenwert ist vorzugsweise von dem Musiker so eingestellt, daß er größer ist als der Pegel des Hintergrundrauschens, der in das Mikrophon 30 (in Fig. 1 gezeigt) gelangt. Wenn der Pegel des Eingangs- Vokalsignals nicht oberhalb des Schwellenwerts liegt, geht die Unterroutine 200 zum Rückkehrblock 214, der anzeigt, daß keine neue Note beginnt. Wenn der Pegel des Eingangs-Vokalsignals oberhalb des vorbestimmten Schwellenwerts liegt, geht die Unterroutine 200 zum Entscheidungsblock 216, der ermittelt, ob das Eingangs-Vokalsignal repräsentativ für einen Zischlaut ist. Der Betrieb des Blocks 216 wird weiter unten ausführlicher beschrieben.
  • Wenn das Eingangs-Vokalsignal kein Zischlaut ist, geht die Unterroutine zum Entscheidungsblock 218, der ermittelt, ob das Eingangs-Vokalsignal periodisch ist. Die Antwort auf den Entscheidungsblock 218 wird auch von dem (in Fig. 2 gezeigten) Block 112 geliefert. Wenn das Eingangs- Vokalsignal nicht periodisch ist, geht die Unterroutine zu dem Rückkehrblock 214, der anzeigt, daß keine neue Note beginnt. Ist das Eingangssignal periodisch, geht die Unterroutine 200 zu einem Block 219 und ermittelt, ob die Grundfrequenz des Eingangs-Vokalsignals den Bereich übersteigt, den eine menschliche Stimme zu singen im Stande ist. Speziell dann, wenn die Grundfrequenz etwa 1000 Hertz übersteigt, geht die Routine zurück zum Block 214.
  • Nach dem Herausfinden, daß die Grundfrequenz im Bereich einer menschlichen Stimme liegt, liest die Unterroutine 200 den Noten-"Aus"-Zähler. Nach dem Block 220 geht die Unterroutine 200 zum Entscheidungsblock 224, welcher ermittelt, ob die vorausgehende Note für weniger oder gleich 100 Millisekunden "Aus" war. Wenn die vorausgehende Note nicht um weniger als 100 Millisekunden zuvor zu Ende war, geht die Unterroutine 200 zum Rückkehrblock 224, der anzeigt, daß von dem Musiker eine neue Note gesungen wird. Wenn die Antwort auf den Entscheidungsblock 224 Ja lautet, was bedeutet, daß die vorausgehende Note vor nicht weniger oder gleich 100 Millisekunden vorher zu Ende war, geht die Unterroutine 200 zum Entscheidungsblock 225. Der Entscheidungsblock 225 ermittelt, ob es eine starke Zunahme des Pegels des Eingangs-Vokalsignals nach dem letzten Aufruf der Unterroutine 200 gegeben hat. Wenn der Pegel des Eingangssignals um 2 zunimmt, das heißt sich verdoppelt, geht die Unterroutine 200 zum Block 227, der den Bereich akzeptierbarer Frequenzen, wie er im Block 126 in Fig. 2 bestimmt wird, verkleinert. In der bevorzugten Ausführungsform wird der akzeptierbare Bereich gegenüber der Grundfrequenz der vorhergehenden Note, +/- 25%, auf die Grundfrequenz der vorhergehenden Note, +/- 12,5% reduziert. Das vorliegende Verfahren arbeitet unter der Annahme, daß eine starke Zunahme des Eingangs-Vokalsignals einem Punkt vorausgeht, an welchem es schwierig ist, die Grundfrequenz zu ermitteln. Durch Verkleinern des Bereichs zulässiger Frequenzen vermeidet die Unterroutine 200 ein "Verrasten" auf einer Frequenz, die nicht die Grundfrequenz ist, sondern stattdessen eine Harmonische des Eingangs- Vokalsignals.
  • Wenn die Antwort auf den Entscheidungsblock 225 "Nein" lautet, oder nach dem Verringern des akzeptierbaren Frequenzbereichs im Block 227 geht die Unterroutine 200 zum Entscheidungsblock 228, der ermittelt, ob die Grundfrequenz des Eingangssignals innerhalb des akzeptierbaren Bereichs liegt (der im Block 226 in Fig. 2 berechnet oder im Block 227 verkleinert wurde). Wenn die Antwort auf den Entscheidungsblock 228 "Ja" lautet, geht die Unterroutine 200 zum Rückkehrblock 226, der anzeigt, daß eine neue Note beginnt.
  • Wenn die Antwort auf den Entscheidungsblock 228 "Nein" lautet, was bedeutet, daß die Grundfrequenz nicht in dem akzeptierbaren Bereich liegt, geht die Unterroutine 200 zum Entscheidungsblock 230, der feststellt, ob ganzzahlige Vielfache (2x, 3x, 4x) oder Bruchteile (1/2, 1/3, 1/4) der Grundfrequenz in dem akzeptierbaren Bereich liegen. Lautet die Antwort auf den Entscheidungsblock 230 Nein, so geht die Unterroutine 200 zum Rückkehrblock 214, der anzeigt, daß keine neue Note beginnt. Wenn die Antwort auf den Entscheidungsblock 230 "Ja" lautet, was bedeutet, daß ein ganzzahliges Vielfaches oder ein Bruchteil der Grundfrequenz in dem akzeptierbaren Bereich liegt, geht die Unterroutine 200 zum Block 232, der die Grundfrequenz dividiert oder multipliziert, so daß das Ergebnis in dem akzeptierbaren Bereich liegt. Wenn zum Beispiel die Grundfrequenz 1/3 der erwarteten Frequenz +/- 25% liegt, wird die Grundfrequenz mit 3 multipliziert, etc. Nach dem Block 232 geht die Unterroutine 200 zum Rückkehrblock 226, der anzeigt, daß von dem Musiker eine neue Note gesungen wird.
  • Fig. 4 ist ein detailliertes Ablaufdiagramm der Unterroutine 300, die im Block 127 (Fig. 2) aufgerufen wird. Der Zweck der Unterroutine 300 ist es, zu ermitteln, ob die "laufende Note", die von dem Musiker gesungen wird, noch weiter anhält oder beendet wurde. Die Unterroutine 300 beginnt im Block 310 und geht zum Block 312, der die Grundfrequenz und den Pegel des Eingangs-Vokalsignals liest, wie sie von dem Block 112 (in Fig. 2 gezeigt) ermittelt werden. Nach dem Block 312 geht die Unterroutine 300 weiter zum Entscheidungsblock 314, der ermittelt, ob der Pegel des Eingangssignals den vorbestimmten Schwellenwert übersteigt. Lautet die Antwort auf den Block 314 "Nein", so geht die Unterroutine 300 zum Rückkehrblock 317, der anzeigt, daß die "laufende Note" nicht mehr anhält. Wenn der Pegel oberhalb des Schwellenwerts liegt, geht die Unterroutine 300 zu dem Entscheidungsblock 316, der ermittelt, ob das Eingangs- Vokalsignal einem Zischlaut entspricht. Lautet die Antwort auf den Entscheidungsblock 316 "Ja", geht die Unterroutine 300 zu dem Rückkehrblock 317. Wenn die Antwort auf den Entscheidungsblock 316 "Nein" lautet, geht die Unterroutine 300 zum Entscheidungsblock 318, der feststellt, ob das Eingangs-Vokalsignal periodisch ist, indem die Ergebnisse des Blocks 112 geprüft werden. Lautet die Antwort auf den Entscheidungsblock 318 "Nein", geht die Unterroutine 300 zum Rückkehrblock 317. Lautet die Antwort auf den Entscheidungsblock 318 "Ja", geht die Unterroutine 300 zum Entscheidungsblock 319, der ermittelt, ob die Grundfrequenz des Eingangs-Vokalsignals innerhalb des Bereichs einer menschlichen Stimme liegt. Der Block 319 arbeitet in der gleichen Weise wie der Block 219 (der in Fig. 3 gezeigt ist). Wenn die Antwort auf den Entscheidungsblock 319 "Nein" lautet, geht die Unterroutine 300 zum Rückkehrblock 317. Wenn die Antwort auf den Entscheidungsblock 319 "Ja" lautet, geht die Unterroutine 300 zum Entscheidungsblock 320.
  • Der Entscheidungsblock 320 arbeitet in der gleichen Weise wie der Block 225 (der in Fig. 3 gezeigt ist), um zu ermitteln, ob es eine starke Zunahme des Pegels des Eingangs-Vokalsignals gibt. Lautet die Antwort auf den Block 320 "Ja", so wird der Bereich akzeptierbarer Frequenzen im Block 322 verringert. Lautet entweder die Antwort auf den Entscheidungsblock 320 "Nein" oder nachdem der Bereich akzeptierbarer Frequenzen im Block 322 verringert wurde, geht die Unterroutine 300 zum Entscheidungsblock 324, der ermittelt, ob die Grundfrequenz des Eingangssignals innerhalb des akzeptierbaren Bereichs liegt, wird entweder im Block 126 (in Fig. 2) ermittelt wurde, oder wie er im Block 322 in der soeben beschriebenen Weise verringert wurde. Wenn die Antwort auf den Entscheidungsblock 324 "Ja" lautet, geht die Unterroutine 300 zum Rückkehrblock 326, der anzeigt, daß die Note anhält. Lautet die Antwort auf den Entscheidungsblock 324 "Nein", was bedeutet, daß die Grundfrequenz nicht in dem akzeptierbaren Bereich liegt, geht die Unterroutine 300 zum Entscheidungsblock 328, der ermittelt, ob ganzzahlige Vielfache (2x, 3x, 4x) oder Bruchteile (1/2, 1/3, 1/4) der Grundfrequenz in dem akzeptierbaren Bereich liegen. Lautet die Antwort auf den Entscheidungsblock 328 "Nein", geht die Unterroutine zum Rückkehrblock 317, der anzeigt, daß die Note nicht andauert. Lautet die Antwort auf den Entscheidungsblock 328 "Ja", geht die Unterroutine 300 zum Block 329, der ermittelt, ob es einen Sprung in der Oktave des Eingangssignals gegeben hat. Ein Sprung eine "Oktav hoch" wird nachgewiesen durch eine Verdoppelung der Grundfrequenz, während ein Sprung eine "Oktav niedriger" anhand einer Halbierung der Grundfrequenz nachgewiesen wird. Ein Paar von Variablen "Oktave hoch" und "Oktave herunter" verfolgt die Häufigkeiten, mit denen das Eingangs-Vokalsignal eine Oktav nach oben bzw. nach unten springt. Diese Variablen werden in dem Block 329 aktualisiert, bevor die Unterroutine zum Entscheidungsblock 330 weitergeht.
  • Das vorliegende Verfahren zum Analysieren von Eingangs-Vokalsignalen arbeitet so, daß es die Häufigkeit verfolgt, mit der die Grundfrequenz, die von dem Block 112 bestimmt wird, um eine Oktave springt. Wenn zum Beispiel der Musiker ein Wort zu singen beginnt, welches mit einem "W" bei A-440 Hertz anfängt, so kann die Grundfrequenz bei A-220 Hertz beginnen, auf A-440 Hertz springen, zurück auf A-220 Hertz, hoch auf A-880 Hertz springen, etc. Die beiden Variablen "Oktave-hoch" und "Oktave- herunter" verfolgen die Häufigkeit, mit der die Grundfrequenz gegenüber A-440 Hertz um eine Oktave springt. Weil das vorliegende Verfahren keine Möglichkeit hat, zu erkennen, welche der Oktaven A-220 Hertz, A-440 Hertz oder A-880 Hertz die korrekte, von dem Musiker gesungene Frequenz ist, wird eine Anfangsabschätzung gemacht. Die Anfangsabschätzung wird als korrekt angenommen, darf sich aber im Zuge der Unterroutine 300 für die ersten sechs Male nach oben oder nach unten ändern. Nachdem die Note zwischen 100 und 200 Millisekunden "Ein" war, muß das Verfahren "verrasten", oder eine der Oktaven wählen. Wenn allerdings nach etwa 200 Millisekunden das Verhältnis der Häufigkeit, mit der die Grundfrequenz um eine Oktave abfällt, im Vergleich zu der Länge der Zeit, die die Note bereits "Ein" war, 50% übersteigt, so muß das Verfahren ermitteln, ob es zu einem Oktavenfehler gekommen ist, folglich am Anfang die falsche Wahl der Oktave erfolgt ist.
  • Ein Entscheidungsblock 330 ermittelt, ob die laufende Note für eine Zeit von mehr oder gleich 200 Millisekunden anstand, was durch den Note- "Ein"-Zähler ermittelt wird. Wenn die Antwort auf den Entscheidungsblock 330 "Nein" lautet, geht die Unterroutine 300 zum Rückkehrblock 326, die angibt, daß die "laufende Note" anhält. Nach der Rückkehr zum Block 119 (Fig. 2) wird die Variable "laufende Note" aktualisiert, um die neue Grundfrequenz wiederzuspiegeln. Wenn die Antwort auf den Entscheidungsblock 330 "Ja" lautet, geht die Unterroutine 300 zum Entscheidungsblock 334, der ein Verhältnis des Zählerstands in dem "Oktave-herunter"-Zähler zu der Zeit ermittelt, in der die laufende Note bereits anstand. Wenn das Verhältnis 50% übersteigt, geht die Unterroutine 300 zum Block 336, der die Ergebnisse der Unterroutine "Oktavenfehler" 400 gemäß Fig. 2 liest.
  • Lautet die Antwort auf den Entscheidungsblock 334 "Nein", so geht die Unterroutine 300 zum Block 335, der ein Verhältnis des Zählerstands in dem Zähler "Oktave-hoch" zu der Zeit berechnet, innerhalb der die "laufende Note" "Ein" war. Überschreitet dieses Verhältnis nicht 50%, so geht die Unterroutine 300 zum Block 332, der die Grundfrequenz korrigiert. Wenn zum Beispiel die sechs Ablesungen angezeigt haben, daß die Grundfrequenz 440 Hertz betrug, und anschließend die Grundfrequenz zu 880 Hz ermittelt wurde, so würde das Verhältnis des Zählers "Oktave- hoch" zu dem Inhalt des Note-"Ein"-Zählers nicht 50% übersteigen, und der Meßwert von 880 Hertz würde durch 2 geteilt. Nach dem Block 332 geht die Unterroutine zu dem Rückkehrblock 326. Wenn die Antwort auf den Entscheidungsblock 335 "Ja" lautet, wird angenommen, daß die Grundfrequenz die korrekte Grundfrequenz ist und zu Beginn ein Fehler gemacht wurde, als der "laufenden Note" ein Wert zugeordnet wurde. Deshalb geht die Unterroutine 300 zum Block 337, der die Zähler Note-"Ein" und "Oktave" löscht, bevor sie zum Rückkehrblock 326 weitergeht. Nach der Rückkehr wird die "laufende Note" aktualisiert, um die neue, höhere Oktav wiederzuspiegeln.
  • Wenn die Antwort auf den Entscheidungsblock 334 "Ja" lautet, geht die Unterroutine 300 zum Block 336, der das Ergebnis der Unterroutine "Oktavenfehler" liest. Die Ergebnisse der Unterroutine "Oktavenfehler" werden im Entscheidungsblock 338 geprüft. Gibt es keinen Oktavenfehler (das heißt, war die anfängliche Abschätzung der Oktave des Eingangs- Vokalsignals richtig), so ist die gerade bestimmte Grundfrequenz eine Oktave niedriger als die wirkliche Grundfrequenz des Eingangs-Vokalsignals. Desbaib wird im Block 332 die Frequenz mit 2 multipliziert. Gibt es einen Oktavenfehler, dann wird angenommen, daß die gerade bestimmte Grundfrequenz die korrekte Grundfrequenz ist, und die Unterroutine geht zum Rückkehrblock 326, und die anfängliche Abschätzung der Oktave, die der Musiker gesungen hat, war falsch. Deshalb werden im Block 337 vor der Rückkehr zum Block 326 der Note-"Ein"-Zähler und die Oktavenzähler gelöscht, so daß die neue Grundfrequenz nun der laufenden Note zugeordnet wird.
  • Fig. 5 ist ein detalliertes Ablaufdiagramm, welches die Arbeitsweise der "Oktavenfehler"-Unterroutine 400 (in Bezug auf Fig. 2) veranschaulicht. Die Unterroutine 400 beginnt beim Startblock 410 und geht weiter zum Block 412, der für eine Zeitspanne von L Abtastungen die Autokorrelation (Rx(0)) 0-ter Verzögerung des Eingangs-Vokalsignals berechnet. In der bevorzugten Ausführungsform wird L auf 256 eingestellt. Die Autokorrelation mit 0-ter Verzögerung bestimmt sich durch die Formel gemäß Gleichung 1:
  • wobei x(n) das Eingangs-Vokalsignal ist, welches im RAM 44 (Fig. 1) gespeichert ist. Nach dem Block 412 geht die Unterroutine 400 zum Block 414, wo die Autokorrelation (Rx(P/2)) P/2-ter Verzögerung gemäß folgender Gleichung 2 berechnet wird:
  • Dabei ist P die Periodendauer der Grundfrequenz des Eingangs- Vokalsignals wenn das Verhältnis der 0-ten Autokorrelation zu der P/2-ten Autokorrelation 0,10 übersteigt, was durch einen Entscheidungsblock 416 ermittelt wird, geht die Unterroutine 400 zum Entscheidungsblock 418, welcher feststellt, ob die Grundfrequenz der Hälfte des akzeptierbaren Bereichs entspricht, das heißt, eine Oktave niedriger als erwartet ist. Lautet die Antwort im Entscheidungsblock 418 "Ja", so geht die Unterroutine 400 zum Block 420, der einen Oktavenfehler verkündet. Wenn die Antwort auf entweder den Entscheidungsblock 416 oder 418 "Nein" lautet, geht die Unterroutine 400 direkt zum Rückkehrblock 422. Die Unterroutine 400 vergleicht den Betrag der Grundfrequenz des Eingangs-Vokalsignals mit dem Betrag der geradzahligen Harmonischen. Weil ein Oktavenfehler typischerweise durch einen großen Wert der geradzahligen Harmonischen im Vergleich zu der Grundfrequenz angezeigt wird, läßt sich eine Verhältnismaß-Bestimmung durchführen, und die Anfangsabschätzung der Grundfrequenz wird dann korrigiert, um die tatsächliche Grundfrequenz des Eingangs-Vokalsignals wiederzuspiegeln.
  • Fig. 6 ist ein Diagramm, welches veranschaulicht, wie das erfindungsgemäße Verfahren arbeitet, um die Harmoniesignale zu generieren. Das Eingangs-Vokalsignal 500 ist mit einer Periodendauer τf dargestellt. Ein Teil des Eingangs-Vokalsignals wird extrahiert, indem das Signal mit einem Fenster 502 multipliziert wird, dessen Dauer vorzugsweise der doppelten Periodendauer τf der Grundfrequenz entspricht. Bei der bevorzugten Ausführungsform ist das Fenster so geformt, daß es eine Annäherung eines Hanning-Fensters darstellt, um hochfrequentes Rauschen in dem fertigen mehrstimmigen Signal zu verringern. Man kann allerdings zahlreiche sich glatt ändernden Funktionen verwenden. Das Ergebnis der Multiplikation des Eingangs-Vokalsignals 500 mit dem Fenster 502 ist als ein skaliertes Eingangs-Sprachsignal 504 dargestellt. Wie man sieht, ist das skalierte Eingangs-Sprachsignal überall im wesentlichen Null, mit Ausnahme des Bereichs unter dem glockenförmigen Teil des Fensters 502. Was also aus dem Eingangs-Vokalsignal 500 extrahiert wurde, ist ein Teil mit einer Dauer der doppelten Periodendauer τf.
  • Ein Harmoniesignal 506 wird dadurch erzeugt, daß das skalierte Eingangs- Vokalsignal 504 mit einer Geschwindigkeit kopiert wird, die dem Zweifachen der Grundfrequenz des Eingangssignals 500 entspricht, um ein Harmoniesignal zu erzeugen, welches eine Oktav oberhalb des Eingangs- Vokalsignals 500 liegt. Um ein Harmoniesignal zu erzeugen, welches eine Oktav niedriger als das Eingangs-Vokalsignal 500 liegt, würde das skalierte Eingangs-Vokalsignal 504 mit einer Rate multipliziert werden, welche der halben Grundfrequenz des Eingangssignals entspricht. Durch Einstellen der Geschwindigkeit, mit der das skalierte Eingangssignal 504 kopiert wird, läßt sich also jede Harmonienote erzeugen, ohne daß man die Form der Spektral-Hüllkurve des Eingangs-Vokalsignals 500 ändert, wie es oben diskutiert wurde.
  • Weil das in Fig. 6 gezeigte Hanning-Fenster 502 mit einem einfachen Mikroprozessor schwer auf Echtzeitbasis zu berechnen ist, nähert die vorliegende Erfindung ein Hanning-Fenster unter Einsatz einer stückweisen linearen Approximation an. Fig. 7 zeigt, wie die Approximation der Fensterfunktion 520 berechnet wird. Zum Zweck der Darstellung sei angenommen, daß die Periodendauer τf der Grundfrequenz des Eingangs-Vokalsignals 62 betrage. Diese Zahl wird aus dem in Fig. 2 gezeigten Block 112 in bereits früher beschriebener Weise erhalten. Die stückweise lineare Approximation wird unter Verwendung zweier Linien 522 und 524 erzeugt, die jeweils eine andere Steigung und eine unterschiedliche Dauer besitzen. Die Linie 522 ist in zwei Segmente 522a und 522b aufgetrennt, während die zweite Linie 524 zwischen diesen Teilen liegt. Die Steigung der Linie 522 wird als Steigung&sub1; bezeichnet, während die Steigung der Linie 524 mit Steigung&sub2; bezeichnet wird. Die Berechnung der Steigungen und Dauern sind durch folgende Gleichungen 3-6 gegeben:
  • Steigung&sub1; = Int(Spitze/τf) (3)
  • Steigung&sub2; = Steigung&sub1; + 1 (4)
  • Dauer der Steigung&sub2; = Spitze - (τf Steigung&sub1;) (5)
  • Dauer der Steigung&sub1; = τf - Dauer der Steigung&sub1; (6)
  • Die Variable "Spitze" ist eine vorab definierte Variable und hat bei der bevorzugten Ausführungsform den Wert 128. Die Anwendung dieser Gleichungen auf die stückweise lineare Approximation 520 (die in Fig. 7 gezeigt ist) resultiert in der Steigung von 2 für die Linie 522 und in einer Steigung von 3 für die Linie 524. Die Dauer des Segments 522a beträgt 30, die Dauer des Segments 522b beträgt 31, und die Dauer der Linie 524 beträgt 2. Jegliche ungeraden Zeitspannen werden immer auf den Linienabschnitt 522b addiert. Die zweite Hälfte der stückweisen linearen Approximation 520 erfolgt durch Erzeugung eines Spiegelbilds der linken Hälfte mit gleichen Dauern, jedoch jeweils negativen Steigungen. Unter Verwendung von ausschließlich Steigungen mit ganzzahligen Werten sind die zum Extrahieren eines Stücks der Wellenformen benötigten Operationen einfacher und ermöglichen dem vorliegenden Verfahren dadurch, im wesentlichen im Echtzeitbetrieb zu arbeiten, und zwar mit einem billigen Mikroprozessor. Außerdem würden nicht-ganzzahlige Steigungswerte unerwünschte Hochfrequenz-Modulationen in das mehrstimmige Signal einbringen.
  • Fig. 8 zeigt ein Blockdiagramm des Signalprozessorblocks 50 (gemäß Fig. 2). Der Signalprozessorblock 50 erzeugt das mehrstimmige Ausgangssignal, welches das Eingangs-Vokalsignal und die mehreren Harmoniesignale beinhaltet. Ein linker Tonhöhenverschieber 550 und ein rechter Tonhöhenverschieber 600 kopieren die skalierten Eingangs-Vokalsignale mit mehreren Geschwindigkeiten entsprechend den Frequenzen jedes der Harmoniesignale, wie sie oben bestimmt wurden. Der linke Tonhöhenverschieber 550 empfängt die Periodendauer des ersten und des zweiten Harmoniesignals über Leitungen 552 bzw. 554. An den linken Tonhöhenverschieber 550 wird über die Leitung 556 auch eine Beschreibung der stückweisen linearen Approximation des Hanning-Fensters gelegt. In ähnlicher Weise empfängt der rechte Tonhöhenverschieber 600 die Periodendauer des dritten und des vierten Harmoniesignals über Leitungen 606 und 608, außerdem die Beschreiung des Hanning-Fensters über die Leitung 610. Die Periodendauer der Grundfrequenz, τf, wird über eine Leitung 612 an einen Grund-Timer 602 gelegt. Der Grund-Timer 602 wird auf die Zeitsteuerung eines vorbestimmten Intervalls dadurch eingestellt, daß er mit einer entsprechenden Zahl geladen wird. Durch Laden des Grund-Timers 602 mit der Periodendauer τf der Grundfrequenz des Eingangs-Vokalsignals gibt der Grund- Timer 602 ein Intervall mit der gleichen Dauer vor, wie es der Grundfrequenz des Eingangssignals entspricht. Jedesmal, wenn der Grund-Timer sein Intervall steuert, wird ein Startzeiger 604 mit derjenigen Adresse des RAM 44 geladen, von der ab der Teil des Eingangs-Vokalsignals auszulesen ist.
  • Wie oben beschrieben, ist der RAM 44 als kreisförmiges Feld konfiguriert, in welches die Eingangs-Vokaldaten eingespeichert werden. Ein Schreibzeiger 45 wird stets aktualisiert, um die nächste verfügbare Speicherstelle zu kennzeichnen, in der Eingangs-Vokaldaten gespeichert werden können. Das vorliegende Verfahren geht von der Annahme aus, daß die Tonhöhen- Nachweis-Unterroutine 112 (in Fig. 2 gezeigt) etwa 20 Millisekunden braucht, um die Feststellung bezüglich der Grundfrequenz des Eingangssignals abzuschließen. Der Beginn des auszulesenden Abschnitts des Eingangs-Vokalsignals läßt sich also dadurch bestimmen, daß man die in 20 Millisekunden abgetastete Datenmenge von der Adresse des Schreibzeigers 45 subtrahiert. Der Grund-Timer 602 und der Startzeiger 604 arbeiten folglich zusammen, um die Adresse im RAM 44 für den Teil des Eingangs- Vokalsignals zu bestimmen, der extrahiert werden soll.
  • Der linke Tonhöhenverschieber 550 und der rechte Tonhöhenverschieber 600 multiplizieren die in dem RAM 44 gespeicherten Eingangs-Vokaldaten mit der Fensterfunktion. Jede Tonhöhenverschieber 550 und 600 empfängt die abgetasteten Eingangs-Vokaldaten über die Leitung 614 und gibt das Ergebnis über Leitungen 616 bzw. 618 aus. Ein Paar Schalter 620, 622 verbindet den Ausgang des Signalprozessorblocks 500 mit einem Paar Leitungen 56a und 56b. Die Schalter 620 und 622 werden von einem Bypass- Signal gesteuert, welches über die Leitung 624 von dem Mikroprozessor übertragen wird. Wenn eine Note nicht nachgewiesen wird (beispielsweise wegen Zischlauts, niedrigem Pegel, etc.), empfangen die Leitungen 56a und 56b die abgetasteten Eingangs-Vokaldaten von der Leitung 614 direkt, die Tonhöhenverschieber 550 und 600 werden umgangen. Wie oben angegeben, sollte die Frequenz von Zischlauten nicht verschoben werden, damit das mehrstimmige Signal einen natürlichen Klang erhält.
  • Fig. 9 zeigt ein detailliertes Blockdiagramm des linken Tonhöhenverschiebers 550, wie er in Fig. 8 gezeigt ist. Wie oben erwähnt, multipliziert der Tonhöhenverschieber 550 einen Teil der abgetasteten Eingangs-Vokaldaten mit der Fensterfunktion bei mehreren Geschwindigkeiten, um die Harmoniesignale zu erzeugen. Enthalten in dem linken Tonhöhenverschieber 550 sind zwei Timer 558 und 562, die mit den Periodendauern des ersten bzw. des zweiten Harmoniesignals geladen werden. Die Timer 558 und 562 steuern ein Zeitintervall entsprechend der Periodendauer des ersten und des zweiten Harmoniesignals. Wenn der Timer 558 ein Intervall steuert, welches der Periodendauer des ersten Harmoniesignals, τh1, gleicht, wird über die Leitung 562 ein Signal zu einem Einblend-Zuordnungsblock 566 gesendet. In ähnlicher Weise wird, wenn der Timer 562 ein Zeitintervall entsprechend der Periodendauer des zweiten Harmoniesignals, τh2 steuert, über die Leitung 564 ein Signal zu dem Einblend-Zuordnungsblock 566 gesendet. Der Einblend-Zuordnungsblock 566 löst einen von vier Einblendern 568, 570, 572 und 574 aus, damit er mit dem Generieren eines Teils des mehrstimmigen Signals beginnt, indem er die abgetasteten Eingangs-Vokaldaten mit der Fensterfunktion multipliziert. Der Einblend-Zuordnungsblock 566 ist an die Einblender über einen Satz von Leitungen 566a, 566b, 566c und 566d gekoppelt.
  • Enthalten in jedem der Einblender 568a, 570a, 572a und 574a sind ein Lesezeiger und ein Fensterzeiger 568b, 570b, 572b und 574b. Jedesmal, wenn ein Einblender aufgefordert wird, wird der laufende Startzeiger 604 in den Lesezeiger des ausgelösten Einblenders geladen, um die Adresse in dem RAM 44 anzugeben, von der aus die Eingangs-Vokaldaten zu lesen sind. Ebenfalls enthalten in jedem der Einblender 568, 570, 572 und 574 ist ein Fensterzeiger, der den Abschnitt der stückweisen linearen Approximation der Fensterfunktion verfolgt, der mit den Eingangs-Vokaldaten zu multiplizieren ist. Der linke Tonhöhenverschieber 550 enthält außerdem eine Fenstertabelle 578, die eine mathematische Beschreibung der stückweisen linearen Approximation des Fensters beinhaltet. Die Fenstertabelle 578 ist mit jedem der Einblender über eine Leitung 580 gekoppelt. Jeder in dem Tonhöhenverschieber enthaltene Einblender arbeitet auf gleiche Weise. Daher gilt die nachfolgende Beschreibung des Einblenders 568 gleichermaßen auch für die anderen Einblender.
  • Wenn das erste Harmoniesignal so ausgewählt wird, daß es eine Oktav unterhalb des Eingangs-Vokalsignals liegt, entspräche die Periodendauer τh1 dem zweifachen der Periodendauer τf. Wenn der Timer 558 den Wert τh1 erreicht, wählt der Einblend-Zuordnungsblock 566 einen verfügbaren Einblender aus, damit er damit beginnt, die abgetasteten Eingangs-Vokaldaten mit der Fensterfunktion zu multiplizieren. Angenommen, es stünde der Einblender 568 zur Verfügung; dann wird der in dem Einblender 568 enthaltene Lesezeiger aktualisiert, damit er der Adresse des RAM 44 entspricht, aus der die Daten gelesen werden sollen. Dann beginnt der Einblender 568 damit, die abgetasteten Eingangs-Vokaldaten, die über die Leitung 614 erhalten werden, mit der von der Leitung 580 erhaltenen Fensterfunktion in dem Multiplizierblock 569 zu multiplizieren. Die Ergebnisse der Multiplikation werden über eine Leitung 576a an einen Addierer 582 gegeben, wo das Ergebnis mit den Ausgangssignalen der übrigen Einblender kombiniert wird, um auf der Leitung 616 ein Signal zu bilden, welches dem Ausgangssignal des linken Tonhöhenverschiebers entspricht.
  • Weil die Fensterfunktion so gewählt ist, daß ihre Dauer dem Zweifachen der Grundfrequenz des Eingangs-Vokalsignals entspricht, sind zwei Einblender erforderlich, um ein Signal mit einer Frequenz zu erzeugen, die der Frequenz des Eingangs-Vokalsignals entspricht. Lediglich ein Einblender ist erforderlich, um ein Harmoniesignal zu erzeugen, welches eine Oktave niedriger liegt als das Eingangs-Vokalsignal, während vier Einblender erforderlich sind, um ein Harmoniesignal zu erzeugen, dessen Frequenz doppelt so groß ist wie die des Eingangs-Vokalsignals. Es ist möglich, die Fensterfunktion so zu ändern, daß sie eine Dauer aufweist, die weniger beträgt als zwei Periodendauern des Eingangs-Vokalsignals, um die Anzahl der erforderlichen Einblender zu reduzieren, allerdings resultierte eine solche Verringerung der Fensterdauer in einer entsprechenden Abnahme der Tonqualität. Der Vorgang des Multiplizierens eines Hanning-Fensters mit einem Signal zwecks Erzeugung von Harmonien des Signals ist vollständig in der oben angesprochenen Schrift von Lent beschrieben und mithin aus dem Stand der Technik bekannt.
  • Fig. 10 zeigt eine graphische Darstellung eines Eingangs-Vokalsignals 500, welches eine Reihe von vorab definierten Schwellenwerten kreuzt, die durch die Unterroutine 112 benutzt werden, um einen Zischlaut nachzuweisen. Wie oben erwähnt, werden Zischlaute nachgewiesen durch Schwankungen großer Amplitude mit hoher Frequenz. Das Verfahren der Tonhöhen-Ermittlung, wie es in der US-A-4 688 464 offenbart ist, wird durch die vorliegende Erfindung abgewandelt. Zwei Schwellenwerte von 50% des positiven Spitzenwerts und 50% des negativen Spitzenwerts werden festgelegt. Das frühere Verfahren wird ebenfalls so abgeändert, daß eine Aufzeichnung jedesmal dann erfolgt, wenn das Eingangs-Vokalsignal die folgende Sequenz abschließt: Queren des hohen Schwellenwerts, des Schwellenwerts bei 50% des Spitzenwerts und erneutes Queren des hohen Schwellenwerts. In Fig. 10 ist diese Sequenz an den Punkten A und C als abgeschlossen dargestellt. In ähnlicher Weise zeichnet das Verfahren jedesmal auf, wenn das Eingangs-Vokalsignal die Sequenz des Querens des unteren Schwellenwerts, des Schwellenwerts bei 50% der negativen Spitze und des erneuten Querens des unteren Schwellenwerts abschließt. Abschlüsse dieser Sequenz sind an den Punkten B und D dargestellt. Wenn mehr als 16 bis 160 dieser Ereignisse in weniger als 8 Millisekunden auftreten, nimmt das Verfahren an, daß ein Zischlaut nachgewiesen wurde, so daß die Bypass-Leitung für die beiden Tonhöhenverschieber freigegeben und damit die Tonhöhenverschieber in der oben beschriebenen Weise umgangen werden. Bei der bevorzugten Ausführungsform ist die Anzahl von Sequenzen zum Melden eines Zischlauts von dem Musiker einstellbar.
  • Obschon die vorliegende Erfindung in Verbindung mit ihren bevorzugten Ausführungsbeispielen offenbart wurde, erkennt der Fachmann, daß Änderungen der bevorzugten Ausführungsformen in Form und Inhalt möglich sind, ohne von dem Schutzumfang der Erfindung abzuweichen. Es ist also beabsichtigt, daß der Schutzumfang lediglich durch die beigefügten Ansprüche beschränkt wird.

Claims (20)

1. Verfahren zum Verschieben der Tonhöhe eines digital abgetasteten Signals durch Extrahieren eines Abschnitts des Signals und durch Kopieren des extrahierten Abschnitts mit einer vorbestimmten Geschwindigkeit, umfassend:
Analysieren eines Eingangs-Vokalsignals und Generieren eines oder mehrerer Harmoniesignale, die eine vorab definierte musikalische Beziehung zu dem Eingangs-Vokalsignal aufweisen, was wiederum folgende Schritte beinhaltet:
Abtasten des Eingangs-Vokalsignals, um eine digitale Darstellung des Eingangs-Vokalsignals zu schaffen;
wiederholtes Analysieren der digitalen Darstellung des Eingangs-Vokalsignals, um eine laufende Abschätzung der Grundfrequenz des Eingangs- Vokalsignals zu bestimmen;
Testen der laufenden Abschätzung basierend auf einem Satz von Parametern, die aus einer früheren Abschätzung der Grundfrequenz abgeleitet sind, um festzustellen, ob die laufende Abschätzung eine korrekte Abschätzung der Grundfrequenz ist;
Auswählen einer oder mehrerer harmonischer Frequenzen, die das eine oder die mehreren Harmoniesignale definieren, basierend auf der laufenden Abschätzung der Grundfrequenz des Eingangs-Vokalsignals;
Extrahieren eines Abschnitts der digitalen Darstellung des Eingangs- Vokalsignals; und
Kopieren des extrahierten Abschnitts der digitalen Darstellung des Eingangs-Vokalsignals mit einer oder mehreren Geschwindigkeiten, bei denen es sich um eine Funktion der harmonischen Frequenzen handelt, welche das eine oder die mehreren Harmoniesignale definieren.
2. Verfahren nach Anspruch 1, bei dem der Schritt des Testens der laufenden Abschätzung der Grundfrequenz weiterhin den Schritt umfaßt: Feststellen, ob die laufende Abschätzung der Grundfrequenz sich in einem Bereich von Frequenzen befindet, die zu der früheren Abschätzung in Beziehung stehen.
3. Verfahren nach Anspruch 2, weiterhin umfassend den Schritt: Feststellen, ob ein ganzzahliges Vielfaches oder ein Bruchteil der laufenden Abschätzung in dem Bereich von Frequenzen liegt, und, falls ja, Einstellen der laufenden Abschätzung in der Weise, daß diese innerhalb des Bereichs von Frequenzen liegt.
4. Verfahren nach Anspruch 1, weiterhin umfassend den Schritt: Zuordnen einer Referenznote in der Weise, daß diese der laufenden Abschätzung der Grundfrequenz entspricht, wenn die laufende Abschätzung die korrekte Abschätzung der Grundfrequenz des Eingangs- Vokalsignals ist.
5. Verfahren nach Anspruch 4, bei dem das Eingangs-Vokalsignal über mehrere Oktaven reichen kann, und wobei der Schritt des Zuweisens einer Referenznote entsprechend der laufenden Abschätzung weiterhin die Schritte umfaßt:
wiederholtes Erstellen einer Abschätzung der Oktave des Eingangs- Vokalsignals;
Feststellen, ob die Abschätzung der Oktave des Eingangs-Vokalsignals unkorrekt ist; und
Aktualisieren der Abschätzung der Oktave, falls die Abschätzung unkorrekt ist.
6. Verfahren nach Anspruch 5, bei dem der Schritt des Feststellens, wann die Anfangsabschätzung der Oktave inkorrekt ist, folgende Schritte beinhaltet:
Bestimmen einer Zeitlänge, für die die Referenznote zugewiesen wurde;
Zählen der Häufigkeit, mit der die Abschätzung der Oktave des Eingangs-Vokalsignals eine Oktave über oder unter eine Anfangsabschätzung der Oktave schwankt;
Bestimmen einer ersten Variablen, die eine Funktion der Häufigkeit ist, mit der die Abschätzung der Oktave des Eingangs-Vokalsignals eine Oktave über die Anfangsabschätzung der Oktave hinaus schwankt, und eine Funktion der Zeit ist, in der die Referenznote zugewiesen wurde; und
Bestimmen einer zweiten Variablen, die eine Funktion der Häufigkeit ist, mit der die Abschätzung der Oktave des Eingangs-Vokalsignals eine Oktave unterhalb der Anfangsabschätzung der Oktave schwankt, und die eine Funktion der Zeit ist, in der die Referenznote zugewiesen wurde.
7. Verfahren nach Anspruch 6, umfassend die Schritte:
Aktualisieren der Anfangsabschätzung der Oktave des Eingangs-Vokalsignals, Gleichsetzen mit einer Oktave oberhalb der Anfangsabschätzung der Oktave, wenn die erste Variable einen ersten vorab definierten Grenzwert übersteigt; oder
Aktualisieren der Anfangsabschätzung der Oktave des Eingangs-Vokalsignals, Gleichsetzen mit einer Oktave unterhalb der Anfangsabschätzung der Oktave, wenn die zweite Variable einen zweiten vorab definierten Grenzwert überschreitet.
8. Verfahren nach Anspruch 5, bei dem der Schritt des Feststellens, ob die Abschätzung der Oktave unkorrekt ist, folgende Schritte beinhaltet:
Berechnen einer 0-ten Verzögerungs-Autokorrelation des Eingangs- Vokalsignals;
Berechnen einer P/2-ten Verzögerungs-Autokorrelation des Eingangs- Vokalsignals;
Berechnen eines Verhältnisses der 0-ten und der P/2-ten Verzögerungs- Autokorrelation des Eingangs-Vokalsignals; und
Aktualisieren der Abschätzung der Oktave des Eingangs-Vokalsignals in der Weise, daß sie einer Oktav unterhalb der Anfangsabschätzung gleicht, wenn das Verhältnis einen vorbestimmten Grenzwert überschreitet.
9. Verfahren nach Anspruch 1, bei dem der Schritt des Extrahierens eines Abschnitts der digitalen Darstellung des Eingangs-Vokalsignals den Schritt aufweist: Skalieren des Eingangs-Sprachsignals durch eine Fensterfunktion, um einen Abschnitt der digitalen Darstellung des Eingangs-Vokalsignals zu extrahieren.
10. Verfahren nach Anspruch 8, bei dem der Schritt des Skalierens des Eingangs-Vokalsignals durch eine Fensterfunktion weiterhin den Schritt aufweist: Erzeugen einer stückweisen linearen Approximation eines Hanning- Fensters mit einer Dauer, die wesentlich größer ist als eine Periode der laufenden Abschätzung der Grundfrequenz.
11. Verfahren nach Anspruch 1, weiterhin umfassend den Schritt: Feststellen, ob das Eingangs-Vokalsignal repräsentativ für ein Zischlaut ist, und Generieren lediglich eines oder mehrerer Harmoniesignale, wenn das Eingangs-Vokalsignal nicht repräsentativ für einen Zischlaut ist.
12. Verfahren nach Anspruch 6, bei dem der Satz von Parametern, die von einer früheren Abschätzung der Grundfrequenz abgeleitet sind, beinhaltet:
die Zeitdauer, während der die Referenznote zugewiesen wurde;
eine Zeitdauer zwischen dem Ende einer vorausgehenden Note und der Zuweisung der Referenznote;
ein Bereich von Frequenzen, der sich auf die vorausgehende Abschätzung der Grundfrequenz bezieht;
einen Pegel des Eingangs-Vokalsignals.
13. System zum Verschieben der Tonhöhe eines digital abgetasteten Signals durch Extrahieren eines Abschnitts des Signals und Kopieren des extrahierten Abschnitts mit einer vorbestimmten Geschwindigkeit, umfassend:
eine Vorrichtung (10) zum Analysieren eines Eingangssignals (20), welches repräsentativ für eine Musiknote ist, um mehrere Harmoniesignale (22) zu erzeugen, die mit dem Eingangs-Vokalsignal kombiniert werden, um ein mehrstimmiges Signal zu erzeugen, welche ihrerseits beinhaltet:
eine Signalverarbeitungseinrichtung (50) zum Abtasten des Eingangs- Vokalsignals und zum Speichern des abgetasteten Eingangs-Vokalsignals in einem digitalen Speicher (44);
einen Frequenzdetektor (40) zum Bestimmen einer laufenden Abschätzung der Grundfrequenz des Eingabe-Vokalsignals;
eine Berechnungseinrichtung (40) zum Bestimmen der Grundfrequenz der mehreren Harmoniesignale basierend auf der Grundfrequenz des Eingangs-Vokalsignals, und zum Testen der laufenden Abschätzung der Grundfrequenz basierend auf einem Satz von Parametern, die von einer früheren Abschätzung der Grundfrequenz des Eingangs-Vokalsignals abgeleitet sind, um zu ermitteln, ob die laufende Abschätzung eine korrekte Abschätzung der Grundfrequenz des Eingangs-Vokalsignals ist;
mehrere Zeitgebereinrichtungen (558) zum Erzeugen von Triggersignalen mit Frequenzen im wesentlichen gleich den Grundfrequenzen der mehreren Harmoniesignale;
mehrere Überblendeinrichtungen (568), welche auf die Triggersignale ansprechen und Abschnitte des Eingangs-Vokalsignals extrahieren und die extrahierten Abschnitte mit einer Geschwindigkeit kopieren, die im wesentlichen gleich ist der Grundfrequenz der mehreren Harmoniesignale; und
einen Mischer (64), der so verschaltet ist, daß er die extrahierten Abschnitte des Eingangs-Vokalsignals und das Eingangs-Vokalsignal empfängt, um sie zur Erzeugung des mehrstimmigen Signals zu kombinieren.
14. Vorrichtung nach Anspruch 13, bei dem die Überblendeinrichtung (568) zum Extrahieren von Abschnitten des abgetasteten Eingangs-Vokalsignals das abgetastete Eingangs-Vokalsignal mit einer Fensterfunktion skalieren.
15. Vorrichtung nach Anspruch 14, weiterhin umfassend: eine Einrichtung (40) zum Generieren einer stückweisen linearen Approximation eines Hanning-Fensters mit einer Dauer, die länger ist als eine Periodendauer der laufenden Abschätzung der Grundfrequenz des Eingangs-Vokalsignals.
16. Vorrichtung nach Anspruch 13, umfassend: eine Zischlaut-Nachweiseinrichtung (40) zum Feststellen, ob das Eingangs-Vokalsignal repräsentativ für einen Zischlaut ist.
17. Vorrichtung nach Anspruch 16, umfassend: einen Nebenschlußschalter (620), der auf die Zischlaut-Nachweiseinrichtung anspricht, um die Mischeinrichtung (64) vom Empfang der mehreren Harmoniesignale abzuhalten, so daß das mehrstimmige Signal die Harmoniesignale dann ausschließt, wenn das Eingangs-Vokalsignal repräsentativ für einen Zischlaut ist.
18. Vorrichtung nach Anspruch 13, bei dem das Eingangs-Vokalsignal über mehrere Oktaven reichen kann, wobei die Berechnungseinrichtung (40) außerdem eine Anfangsabschätzung der Oktave des Eingangs-Vokalsignals vornimmt, um festzustellen, ob die Anfangsabschätzung unkorrekt ist, und die Anfangsabschätzung der Oktave dann zu aktualisieren, wenn die Anfangsabschätzung unkorrekt ist.
19. Vorrichtung nach Anspruch 18, bei der die Berechnungseinrichtung (40) die 0-te Verzögerungs-Autokorrelation des Eingangs-Vokalsignals und die P/2-te Verzögerungs-Autokorrelation des Eingangs-Vokalsignals berechnet und die Anfangsabschätzung der Oktave aktualisiert, damit sie einer Oktave unterhalb der Anfangsabschätzung gleicht, wenn ein Verhältnis der 0-ten Verzögerungs-Autokorrelation, dividiert durch die P/2- te Verzögerungs-Autokorrelation einen vorbestimmten Grenzwert übersteigt.
20. Vorrichtung nach Anspruch 13, weiterhin umfassend: eine Einrichtung (40) zum Halten der Auswahl der Harmoniesignale ungeachtet von Schwankungen der Grundfrequenz des Eingangs-Vokalsignals, so daß die Harmoniesignale sich nicht eher ändern, bis die Grundfrequenzen des Eingangs-Vokalsignals sich um mehr als ein vorbestimmtes Interval ändern.
DE69222782T 1991-06-21 1992-07-02 Verfahren und vorrichtung für die erzeugung von vokal-harmonien Expired - Fee Related DE69222782T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/719,195 US5231671A (en) 1991-06-21 1991-06-21 Method and apparatus for generating vocal harmonies
PCT/CA1992/000280 WO1994001858A1 (en) 1991-06-21 1992-07-02 Method and apparatus for generating vocal harmonies

Publications (2)

Publication Number Publication Date
DE69222782D1 DE69222782D1 (de) 1997-11-20
DE69222782T2 true DE69222782T2 (de) 1998-02-12

Family

ID=24889126

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69222782T Expired - Fee Related DE69222782T2 (de) 1991-06-21 1992-07-02 Verfahren und vorrichtung für die erzeugung von vokal-harmonien

Country Status (6)

Country Link
US (2) US5231671A (de)
EP (1) EP0648365B1 (de)
JP (1) JPH08500452A (de)
AU (1) AU2242392A (de)
DE (1) DE69222782T2 (de)
WO (1) WO1994001858A1 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428708A (en) * 1991-06-21 1995-06-27 Ivl Technologies Ltd. Musical entertainment system
US5231671A (en) * 1991-06-21 1993-07-27 Ivl Technologies, Ltd. Method and apparatus for generating vocal harmonies
DE4321352C2 (de) * 1993-06-26 2001-09-13 Mann & Hummel Filter Verfahren zur Bestimmung eines Geräuschsignals aus einem Gesamtgeräusch zur Geräuschdämpfung
JPH0816181A (ja) * 1994-06-24 1996-01-19 Roland Corp 効果付加装置
US5567901A (en) * 1995-01-18 1996-10-22 Ivl Technologies Ltd. Method and apparatus for changing the timbre and/or pitch of audio signals
US6046395A (en) * 1995-01-18 2000-04-04 Ivl Technologies Ltd. Method and apparatus for changing the timbre and/or pitch of audio signals
US5712437A (en) * 1995-02-13 1998-01-27 Yamaha Corporation Audio signal processor selectively deriving harmony part from polyphonic parts
JP2921428B2 (ja) * 1995-02-27 1999-07-19 ヤマハ株式会社 カラオケ装置
JP3246347B2 (ja) * 1996-08-26 2002-01-15 ヤマハ株式会社 カラオケシステム
US6081781A (en) * 1996-09-11 2000-06-27 Nippon Telegragh And Telephone Corporation Method and apparatus for speech synthesis and program recorded medium
JP3718919B2 (ja) * 1996-09-26 2005-11-24 ヤマハ株式会社 カラオケ装置
US5860065A (en) * 1996-10-21 1999-01-12 United Microelectronics Corp. Apparatus and method for automatically providing background music for a card message recording system
US5897614A (en) * 1996-12-20 1999-04-27 International Business Machines Corporation Method and apparatus for sibilant classification in a speech recognition system
GB9627015D0 (en) * 1996-12-28 1997-02-19 Central Research Lab Ltd Processing audio signals
JP3910702B2 (ja) 1997-01-20 2007-04-25 ローランド株式会社 波形発生装置
JP3900580B2 (ja) * 1997-03-24 2007-04-04 ヤマハ株式会社 カラオケ装置
JP3317181B2 (ja) * 1997-03-25 2002-08-26 ヤマハ株式会社 カラオケ装置
US6336092B1 (en) * 1997-04-28 2002-01-01 Ivl Technologies Ltd Targeted vocal transformation
US6331864B1 (en) 1997-09-23 2001-12-18 Onadime, Inc. Real-time multimedia visual programming system
US5973252A (en) * 1997-10-27 1999-10-26 Auburn Audio Technologies, Inc. Pitch detection and intonation correction apparatus and method
EP0913808B1 (de) * 1997-10-31 2004-09-29 Yamaha Corporation Audiosignalprozessor mit Ton- und Effektsteuerung
US5969282A (en) * 1998-07-28 1999-10-19 Aureal Semiconductor, Inc. Method and apparatus for adjusting the pitch and timbre of an input signal in a controlled manner
US7096186B2 (en) * 1998-09-01 2006-08-22 Yamaha Corporation Device and method for analyzing and representing sound signals in the musical notation
US7003120B1 (en) 1998-10-29 2006-02-21 Paul Reed Smith Guitars, Inc. Method of modifying harmonic content of a complex waveform
JP3365354B2 (ja) 1999-06-30 2003-01-08 ヤマハ株式会社 音声信号または楽音信号の処理装置
AU2001211040A1 (en) * 1999-10-29 2001-05-14 Paul Reed Smith Guitars, Limited Partnership. (Maryland) Method of signal shredding
JP4416244B2 (ja) * 1999-12-28 2010-02-17 パナソニック株式会社 音程変換装置
WO2002077585A1 (en) 2001-03-26 2002-10-03 Sonic Network, Inc. System and method for music creation and rearrangement
JP4076887B2 (ja) * 2003-03-24 2008-04-16 ローランド株式会社 ボコーダ装置
US7825321B2 (en) * 2005-01-27 2010-11-02 Synchro Arts Limited Methods and apparatus for use in sound modification comparing time alignment data from sampled audio signals
JP4645241B2 (ja) * 2005-03-10 2011-03-09 ヤマハ株式会社 音声処理装置およびプログラム
US8168877B1 (en) * 2006-10-02 2012-05-01 Harman International Industries Canada Limited Musical harmony generation from polyphonic audio signals
WO2010041147A2 (en) * 2008-10-09 2010-04-15 Futureacoustic A music or sound generation system
US8507781B2 (en) * 2009-06-11 2013-08-13 Harman International Industries Canada Limited Rhythm recognition from an audio signal
US9058797B2 (en) 2009-12-15 2015-06-16 Smule, Inc. Continuous pitch-corrected vocal capture device cooperative with content server for backing track mix
EP2362378B1 (de) * 2010-02-25 2016-06-08 YAMAHA Corporation Erzeugung eines harmonischen Tons
US9601127B2 (en) 2010-04-12 2017-03-21 Smule, Inc. Social music system and method with continuous, real-time pitch correction of vocal performance and dry vocal capture for subsequent re-rendering based on selectively applicable vocal effect(s) schedule(s)
WO2011130325A1 (en) 2010-04-12 2011-10-20 Smule, Inc. Continuous score-coded pitch correction and harmony generation techniques for geographically distributed glee club
US10930256B2 (en) 2010-04-12 2021-02-23 Smule, Inc. Social music system and method with continuous, real-time pitch correction of vocal performance and dry vocal capture for subsequent re-rendering based on selectively applicable vocal effect(s) schedule(s)
US9866731B2 (en) 2011-04-12 2018-01-09 Smule, Inc. Coordinating and mixing audiovisual content captured from geographically distributed performers
US9159310B2 (en) 2012-10-19 2015-10-13 The Tc Group A/S Musical modification effects
US9123353B2 (en) * 2012-12-21 2015-09-01 Harman International Industries, Inc. Dynamically adapted pitch correction based on audio input
US9372925B2 (en) 2013-09-19 2016-06-21 Microsoft Technology Licensing, Llc Combining audio samples by automatically adjusting sample characteristics
US9798974B2 (en) 2013-09-19 2017-10-24 Microsoft Technology Licensing, Llc Recommending audio sample combinations
US9257954B2 (en) 2013-09-19 2016-02-09 Microsoft Technology Licensing, Llc Automatic audio harmonization based on pitch distributions
US9280313B2 (en) 2013-09-19 2016-03-08 Microsoft Technology Licensing, Llc Automatically expanding sets of audio samples
WO2016070080A1 (en) * 2014-10-30 2016-05-06 Godfrey Mark T Coordinating and mixing audiovisual content captured from geographically distributed performers
US11488569B2 (en) 2015-06-03 2022-11-01 Smule, Inc. Audio-visual effects system for augmentation of captured performance based on content thereof
US11032602B2 (en) 2017-04-03 2021-06-08 Smule, Inc. Audiovisual collaboration method with latency management for wide-area broadcast
US10275446B2 (en) * 2015-08-26 2019-04-30 International Business Machines Corporation Linguistic based determination of text location origin
US11310538B2 (en) 2017-04-03 2022-04-19 Smule, Inc. Audiovisual collaboration system and method with latency management for wide-area broadcast and social media-type user interface mechanics
JP7190284B2 (ja) * 2018-08-28 2022-12-15 ローランド株式会社 ハーモニー生成装置およびそのプログラム
CN117571184B (zh) * 2024-01-17 2024-03-19 四川省公路规划勘察设计研究院有限公司 一种基于滑窗和聚类分析的桥梁结构索力识别方法及设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3539701A (en) * 1967-07-07 1970-11-10 Ursula A Milde Electrical musical instrument
US3929051A (en) * 1973-10-23 1975-12-30 Chicago Musical Instr Co Multiplex harmony generator
US3999456A (en) * 1974-06-04 1976-12-28 Matsushita Electric Industrial Co., Ltd. Voice keying system for a voice controlled musical instrument
US3986423A (en) * 1974-12-11 1976-10-19 Oberheim Electronics Inc. Polyphonic music synthesizer
CA1056504A (en) * 1975-04-02 1979-06-12 Visvaldis A. Vitols Keyword detection in continuous speech using continuous asynchronous correlation
US4076960A (en) * 1976-10-27 1978-02-28 Texas Instruments Incorporated CCD speech processor
US4279185A (en) * 1977-06-07 1981-07-21 Alonso Sydney A Electronic music sampling techniques
US4142066A (en) * 1977-12-27 1979-02-27 Bell Telephone Laboratories, Incorporated Suppression of idle channel noise in delta modulation systems
US4508002A (en) * 1979-01-15 1985-04-02 Norlin Industries Method and apparatus for improved automatic harmonization
US4311076A (en) * 1980-01-07 1982-01-19 Whirlpool Corporation Electronic musical instrument with harmony generation
US4387618A (en) * 1980-06-11 1983-06-14 Baldwin Piano & Organ Co. Harmony generator for electronic organ
CH657468A5 (de) * 1981-02-25 1986-08-29 Clayton Found Res Bedienungsgeraet an einem mit wenigstens einem synthesizer versehenen elektronischen musikinstrument.
US4464784A (en) * 1981-04-30 1984-08-07 Eventide Clockworks, Inc. Pitch changer with glitch minimizer
JPS58102298A (ja) * 1981-12-14 1983-06-17 キヤノン株式会社 電子機器
US4802223A (en) * 1983-11-03 1989-01-31 Texas Instruments Incorporated Low data rate speech encoding employing syllable pitch patterns
US5005204A (en) * 1985-07-18 1991-04-02 Raytheon Company Digital sound synthesizer and method
US4688464A (en) * 1986-01-16 1987-08-25 Ivl Technologies Ltd. Pitch detection apparatus
US4771671A (en) * 1987-01-08 1988-09-20 Breakaway Technologies, Inc. Entertainment and creative expression device for easily playing along to background music
US5048390A (en) * 1987-09-03 1991-09-17 Yamaha Corporation Tone visualizing apparatus
US4991218A (en) * 1988-01-07 1991-02-05 Yield Securities, Inc. Digital signal processor for providing timbral change in arbitrary audio and dynamically controlled stored digital audio signals
US4915001A (en) * 1988-08-01 1990-04-10 Homer Dillard Voice to music converter
US4998960A (en) * 1988-09-30 1991-03-12 Floyd Rose Music synthesizer
US5092216A (en) * 1989-08-17 1992-03-03 Wayne Wadhams Method and apparatus for studying music
US5056156A (en) * 1989-11-30 1991-10-15 United States Of America As Represented By The Administrator National Aeronautics And Space Administration Helmet of a laminate construction of polycarbonate and polysulfone polymeric material
US5054360A (en) * 1990-11-01 1991-10-08 International Business Machines Corporation Method and apparatus for simultaneous output of digital audio and midi synthesized music
US5231671A (en) * 1991-06-21 1993-07-27 Ivl Technologies, Ltd. Method and apparatus for generating vocal harmonies

Also Published As

Publication number Publication date
JPH08500452A (ja) 1996-01-16
WO1994001858A1 (en) 1994-01-20
EP0648365A1 (de) 1995-04-19
EP0648365B1 (de) 1997-10-15
US5231671A (en) 1993-07-27
AU2242392A (en) 1994-01-31
DE69222782D1 (de) 1997-11-20
US5301259A (en) 1994-04-05

Similar Documents

Publication Publication Date Title
DE69222782T2 (de) Verfahren und vorrichtung für die erzeugung von vokal-harmonien
DE69614938T2 (de) Verfahren und vorrichtung zur änderung des klanges und/oder der tonhöhe von audiosignalen
DE69608826T2 (de) Vorrichtung zur Verarbeitung von Audiosignalen, wobei eine harmonische Stimme von polyphonischen Stimmen abgeleitet wird
DE102008013172B4 (de) Verfahren zur klangobjektorientierten Analyse und zur notenobjektorientierten Bearbeitung polyphoner Klangaufnahmen
DE69228211T2 (de) Verfahren und Apparat zur Handhabung von Höhe und Dauer eines physikalischen Audiosignals
EP0379491B1 (de) Tonhöhensteuerung
DE3788710T2 (de) Tonsignalverarbeitungsvorrichtung mit einem digitalen Filter.
DE2431161C2 (de) Tonerzeugungseinrichtung für ein elektronisches Musikinstrument
DE60313539T2 (de) Vorrichtung und Verfahren zur Synthese einer singenden Stimme und Programm zur Realisierung des Verfahrens
DE3887809T2 (de) Elektronisches Musikinstrument.
DE69129522T2 (de) Taktsteuerung zum automatischen Spielen von Musik
DE60024157T2 (de) Vorrichtung und Verfahren zur Eingabe eines Vortragstils
DE2711511C2 (de) Polyphones elektronisches Musikinstrument
DE68925882T2 (de) Vorrichtung und Verfahren zur Erzeugung von musikalischen Tonwellenformen
DE2500720C3 (de) Elektronisches Musikinstrument
DE2513127C2 (de) Verfahren zum künstlichen Erzeugen eines musikalischen Klangs
DE69312327T2 (de) Vorrichtung zur musikalischen Unterhaltung
DE60305944T2 (de) Verfahren zur synthese eines stationären klangsignals
DE3540314C2 (de)
DE60218587T2 (de) Stimmensynthetisiervorrichtung, welche dazu in der lage ist, vibratoeffekt zu synthetisierter stimme hinzuzufügen
DE102004033867B4 (de) Verfahren und Vorrichtung zur rhythmischen Aufbereitung von Audiosignalen
DE2515524C3 (de) Einrichtung zum elektronischen Erzeugen von Klangsignalen
DE29680173U1 (de) Vorrichtung zur Änderung der Klangfarbe und/oder Tonhöhe von Tonsignalen
DE3249738C2 (de)
DE10302448B4 (de) Verfahren zur synchronisierten Veränderung der Tonhöhe und -länge eines Audiosignals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee