NO855368L - Talesyntetiserings-enhet. - Google Patents

Talesyntetiserings-enhet.

Info

Publication number
NO855368L
NO855368L NO855368A NO855368A NO855368L NO 855368 L NO855368 L NO 855368L NO 855368 A NO855368 A NO 855368A NO 855368 A NO855368 A NO 855368A NO 855368 L NO855368 L NO 855368L
Authority
NO
Norway
Prior art keywords
speech
data
speech synthesis
phrase
channel
Prior art date
Application number
NO855368A
Other languages
English (en)
Inventor
Neil Kellett
Original Assignee
Plessey Overseas
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 Plessey Overseas filed Critical Plessey Overseas
Publication of NO855368L publication Critical patent/NO855368L/no

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/58Arrangements providing connection between main exchange and sub-exchange or satellite
    • H04Q3/62Arrangements providing connection between main exchange and sub-exchange or satellite for connecting to private branch exchanges
    • H04Q3/625Arrangements in the private branch exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Selective Calling Equipment (AREA)
  • Machine Translation (AREA)
  • Monitoring And Testing Of Exchanges (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

Den foreliggende oppfinnelse vedrører en talesyntetiserings-enhet for bruk i en telekommunikasjons-sentral.
Anordninger og fremgangsmåter for talereproduksjon har
vært tilgjengelig i lang tid. Mekaniske bånd- og plate-drivanordninger som benytter analog registrering, er imidlertid kostbare, omfangsrike, energikrevende og ofte utsatt for feil.
I tillegg kan de bare spille tilbake sekvensielt. Digitale metoder til talekoding har en tendens til å være billigere enn deres analoge motstykker, men har den ulempe at de har store hukommelsesbehov. Teknikker for pulskodemodulasjon (PCM) sampler f.eks. taledata ved vanligvis 8 kHz, noe som svarer til en båndbredde på 4 kHz. Kvantisering av hver av disse sampler i 8 bit resulterer i en datahastighet på 64 k bit pr. sekund.
Denne datahastigheten gjør digital koding av store vokabularer upraktisk. Digitale kodemetoder blir noen ganger kalt bølge-form-syntese, men de er ikke virkelige syntesesmetoder ettersom de ganske enkelt gjenoppretter den opprinnelige bølgeform fra de lagrede, kodede taledata. Virkelige synteseteknikker genererer en talebølgeform ved å bruke parametriske data, som ikke ligner den opprinnelige tale-bølgeform selv om de opprinnelige og syntetiserte bølgeformer blir oppfattet av øret som nesten det samme.
Der er hovedsakelig to forskjellige typer talesynteser, tidsdoméne-syntese og frekvensdoméne-syntese. Tidsdoméne-syntese benytter komprimerte representasjoner av tale-bølgeformen som en funksjon av tiden som tale-hukommelsesdata. Syntetisa-toren finner ganske enkelt frem disse lagrede bølgeformer for å frembringe et taleutgangs-signal. Denne fremgangsmåten sikter ikke ganske enkelt på å redusere antall bit som er nødvendig for å lagre den opprinnelige tale-bølgeform og så forsøke å tilnærme seg den bølgeformen, men forsøker å frembringe en syntetisk tale-bølgeform representert ved et lite antall bit som lyder likt, men som ikke nødvendigvis ser ut som den opprinnelige bølgeform. Den maskinvare som er nødvendig for å realisere denne fremgangsmåten, er ganske enkelt, idet det vanskelige om-rådet er den analyse som gjør det mulig å lagre tale-bølgeformen på en slik komprimert form.
Frekvensdoméne-syntese er basert på modellering av de menneskelige stemmeorganer. Tale-bølgeformen blir lagret som parametriske data som representerer stemmebåndenes oscillasjon og resonansene i munnhulen og de øvrige stemmeformende organer. Sammensatte integrerte kretser transformerer disse frekvensdoméne-parametre til et audiosignal i tidsdoménet, hvilket signal er tilnærmet lik det opprinnelige tale-bølgeformspektrum.
Forskjellige fremgangsmåter til talesyntese basert på både tidsdoméne- og frekvensdoméne-syntese er tilgjengelige og i bruk i integrerte talesyntese-kretser. Disse fremgangsmåter kan generelt beskrives som enten konstruktive metoder eller analyse/syntese-metoder. Konstruktiv syntese genererer taleutgang fra et forutbestemt sett med språklige lydsegmenter under styring av et sett regler. Ved å bruke et slikt regelsett kan de språklige elementer, f.eks fonemer, sammenkjedes til ethvert ord. Ingen menneskelig råtale-bølgeform er nødvendig ved bruk av disse metoder. En slik fremgangsmåte kan også kalles "syntese etter regel".
Analyse/syntese-metoder utleder sine vokabularer fra en virkelig menneskelig tale-bølgeform. Vokabularet kan være i form av ord, fraser eller hele setninger, og den utledede syntetiske tale ligner derfor mer på den opprinnelige tale når det gjelder modulasjon, intonasjon, forståelighet og kvalitet. Analyse/syntese-metoden analyserer et virkelig talt ord eller
en setning for å generere kodede parametre som representerer tale-bølgeformen. Disse parametre kan lagres for senere bruk og/eller syntetiseres umiddelbart for å styre en talesyntetiserings-brikke. Disse metodene krever meget mer lagerplass enn konstruktiv syntese.
Der er fire grunnleggende talesyntese-fremgangsmåter som brukes i integrerte talesyntese-kretser. Disse er fonemsyntese, formantsyntese, bølgeform-digitalisering, lineær prediktiv koding .
Fonemsyntetisatorer er anordninger som er istand til å generere og sammenkjede fonemer, talens grunnleggende enheter. Den totale bithastighet for fonemsyntetisatorer kan være meget lav, omkring 100 bit pr. sekund siden antall fonemer i de fleste språk er omkring 40 til 100. Fonemsyntetisatorer frem-hever "alfabet"-enkelhet fremfor talekvalitet. De grunnleggende fonemlyder varierer litt etter hvor de opptrer i forskjellige ord. Ord sammensatt fra så få grunnleggende lyder har en mekanisk eller robotlignende kvalitet. Talekvaliteten kan forbedres ved å modifisere fonemene med allofoner på bekostning av lagerplass. De grunnleggende 44 fonemer i engelsk kan utvides til 128 allofoner som krever en hukommelse på omkring 3 k byte, og ytterligere 7 k byte er nødvendig for de regler som brukes til å kjede sammen allofonene. Allofonisk tale lyder fremdeles unaturlig, men regelsettene blir hele tiden forfinet for å forbedre talekvaliteten. Tonehøyde-konturer kan overlagres på allofon-kjeden for å gjøre talen mer tiltalende for øret. Dette kan imidlertid senke talens forståelighet ved ukorrekt bruk, og er en vanskelig prosess å utføre algoritmisk. En allofonisk syntetisator er et kompromiss mellom vokabularstørrelse, hukommelseskrav, talekvalitet, smidighet og fleksibilitet. Dessuten er allofoniske syntetisatorer iboende egnet for tekst-til-tale-systemer. Innmatet tekst fra et tastatur blir automatisk omformet til de riktige allofoner som så brukes til å generere tale.
Hensikten med formantsyntetisatorer er å modellere elek-tronisk de lydformende trekk ved taletrakten (munnhulen m.m.).
De fleste formantsyntetisatorer bruker tre formantfiltre for stemte lyder og ett formantfilter for frikative lyder. Et nasal-formant-filter kan være innbefattet om ønsket, men dette er vanligvis ikke tilordnet noen dynamisk formantfunksjon. To driv-funksjoner, en impulskilde for stemte lyder og en støykilde for ustemte lyder, blir brukt. Disse drivsignaler blir filtrert til spesielle frekvensbånd eller formanter ved hjelp av de tidsvarierende formantfiltre. Båndbredden av formantfrekvensene blir levert algoritmisk, men nøyaktig modellering av disse bånd-bredder er forholdsvis uviktig for talens forståelighet. En styre-enhet leverer data til modellen som inneholder 9 styre-parametre. Disse parametre innstiller formantfrekvensene og amplitudene, og er:
AH - amplitude av aspirerte lyder
AV - amplitude av vokal-lyder
AF - amplitude av frikative lyder
AN - amplitude av nasale lyder
Fl - frekvens av formant 1
F2 - frekvens av formant 2
F3 - frekvens av formant 3
FF - frekvens av frikativ formant
FV - oscillatorfrekvens
Disse parametre blir generert ved å føre et inngangssignal gjennom tidsvarierende filtre. Koeffisientene til disse filtre blir så lagret i et leselager (ROM) og brukt under syntetiseringen. Denne teknikken er kjent som syntetisering etter regel fordi reglene for å trekke ut ordsignalene er lagret i maskinvare. Tale generert for formantsyntese er forståelig og mer menneske-lignende enn fonemsyntetisering. Bit-hastigheter for denne teknikken er omkring 400 bit pr. sekund. Modellering av for-mantbåndbreddene øker mer nøyaktig talens kvalitet, men også bithastigheten.
Bølgeformdigitalisering er teoretisk den enkleste form for talesyntetisering. Det er den tidligste løsning på talesyntetisering og beror på effektiv analog/digital-omforming. En inn-gangskilde blir omformet til nummeriske data og lagret i et lager for senere gjenfinning og utmatning. Mange digitale koder og dermed et stort lager er nødvendig for nøyaktig representer-ing av tale-bølgeformen. For å redusere de store mengder lagrede data kan en kompresjonsalgoritme redusere lagerbehovet med en faktor på 100. Under bruk av denne teknikken blir det ikke gjort noe forsøk på å modellere den menneskelige taletrakt.
Tre kompresjonsteknikker blir brukt i National Semiconductors Speech Processor Chip. Redundante tonehøyde-perioder og deler av perioder, redundante fonemer og deler av fonemer blir fjernet etter en fremgangsmåte. En annen teknikk genererer amplituden av den fremskridende bølgeform ved hjelp av et lite tillegg til den tidligere verdi. Den tredje teknikk fjerner retnings-komponenten (fasevinkelen) til tale-bølgeformen. Fra de komprimerte data blir det frembragt en bølgeform under syntetisering som lyder lik den opprinnelige bølgeform. Bølgeformdigitali-sering er en analyse/syntese-fremgangsmåte for talesyntetisering.
Fasevinklene i lyd er viktig ved musikkreproduksjon av god kvalitet, men for tale er denne informasjon irelevant. Ved å bruke Fourier-analyse av tale-bølgeformen, kan det frembringes en bølgeform som har speilsymmetri og lav amplitude over minst halve perioden. Speilsymmetrien kan utnyttes ved å kaste bort halvparten av bølgeformen og under "tilbakespilling" spille den gjenværende halvdel fremover og så bakover. Ved å redusere den lave amplitudedelen i signalet til null, blir mengden med lagrede data redusert med halvparten uten å forringe talens forståelighet. Denne teknikk er kjent som halvperiode-nulling.
Fonemer og tonehøyde-perioder blir fjernet ved å bruke repetisjonsperioder. Et antall meget like perioder kan er-stattes av én periode frembragt et antall ganger. For en stemt bølgeform kan denne gjentagelsen inntreffe tre eller fire ganger og opp til syv eller åtte for ustemte bølgeformer. De ustemte lyder er også standardiserte. Under kompresjonsalgoritmen blir ustemte lyder sammenlignet med tilgjengelige lyder og syntetisert ved erstatning ettersom ustemte lyder har svært få talerdefinerte kjennetegn.
Adaptiv deltamodulasjon er den teknikk som anvendes for å frembringe én bølgeform fra en annen. Ettersom tale-bølgeformer er forholdsvis glatte og kontinuerlige, så er den informasjon som det er nødvendig å lagre, meget liten hvis forskjellene i amplitude mellom suksessive digitaliseringer blir lagret i stedet for de virkelige amplitudeverdier. Differansen mellom påfølgende digitaliseringer blir kalt deltaverdien og adderes ganske enkelt til den tidligere digitalisering. Hver ord eller setning må syntetiseres separat ved å bruk bølgeformdigitali-sering slik at lagerbehovene er meget større enn for fonem-eller formant-syntetisering. Talekvaliteten er imidlertid meget bedre, og det gjelder også gjenkjennelse av taleren. Kompresjonsalgoritmen muliggjør en rimelig lav datahastighet, idet hastigheter så lave som 1000 bit pr. sekund er oppnåelige.
Spektralkarakteristikkene til tale varierer med en hastighet som er bestemt av muskelaktiviteten i de menneskelige taleorganer. Dette trekk sammen med menneskelige persepsjons-karakteristikker betyr at over en periode på 20-25 millisekunder kan talens spektrale omhyllingskurve ansees som stasjonær. Lineær prediktiv koding utnytter disse karakteristikker og modellerer de menneskelige stemmeorganer ved å reprodusere en tidsvarierende spektralomhyIling.
Over et endelig intervall kan en talesampel representeres
av en lineær kombinasjon av tidligere talesampler, og dette ut-gjør grunnlaget for lineær prediktiv kodeanalyse. Et entydig sett med prediktor-koeffisienter (K parametre) kan bestemmes ved å minimalisere summen av de kvadrerte differanser mellom virkelige talesampler og riktig veide lineært forutsagte verdier. Det endelige intervall som brukes til analysen, blir kalt analyserammen og et nytt sett med K parametre blir utledet for hver analyseramme.
LPC-parameterne (LPC-lineær prediktiv koding) sammen med energi- (eller forsterknings-) og tonehøyde-parametre og en stemt/ustemt-indikator, blir brukt til å syntetisere tale under bruk av den samme modell eller representasjon av menneskelig taleproduksjon som brukes for analysen. Syntetisk tale blir generert i rammer som svarer til de opprinnelige analysesampler. Disse rammer blir gjenskapt ved lineært å kombinere tidligere talesampler som er blitt veiet av prediksjonsalgoritmen.
Talesyntetiserings-modellen representerer de menneskelige taleorganer ved hjelp av to energikilder, én av hvilke blir brukt til å eksitere et tidsvarierende filter. Innbefattet i dette filteret er de sammensatte spektrale strålingsvirkninger av talesignalet, stemmetraktens overføringsfunksjon og glotal eksitasjon.
En impulsgenerator eksiterer stemte lyder ved å frembringe en fast amplitudepuls ved begynnelsen av hver tonehøyde-periode. Tonehøyde-perioden blir bestemt av en langsomt varierende tone høyde-periodeparameter. En hvitstøy-generator eksiterer stemte lyder. Stemt/ustemt-styringen velger en av de to kilder. For-sterkningsparameteren påvirker alle spektralkomponentene i det genererte signal og representerer talens "høyde". Ti prediksjons-koeffisienter (K-parametre) blir vanligvis brukt til å modellere stemmeorganene ved å bruke et tipolet kryssledd-filter. Styre-parameterne blir vanligvis oppdatert hyppigere enn rammehastig-heten for å frembringe glattere overganger mellom parametersett.
Det lineære, prediktive kodingsvokabularet blir lagret i rammeformat, og hver ramme inneholder den nødvendige parameter-informasjon. Et typisk rammeformat for stemt tale kan behøve så meget som 50 bit til å representere en ramme med stemt tale.
I verste fall er den maksimale datahastighet 40 rammer pr. sekund, noe som svarer til en rammeperiode på 25 millisekunder, multiplisert med 50 bit pr. ramme eller 2000 bit pr. sekund. Rammelengden kan imidlertid være kortere. Ustemt-gjentagelses-, stillhet- og stoppkode-rammer krever alle færre bit enn stemte rammer. Et typisk lineært prediktivt kodesystem krever 1200 bit/sekund for å frembringe talergjenkjennelig tale.
En moderne automatisk hussentral (PABX) som benytter lagret programstyring, (SPC), er istand til å håndtere fra 16 til 4000 internlinjer. I likhet med mange moderne sentraler, er det tilveiebragt mange nye faciliteter slik som samtaleoverføring, ikke forstyrr, forkortet siffervelging og lignende for brukeren.
På grunn av den økte kompleksitet av de faciliteter som tilbys i moderne sentraler, er det en tilsvarende økning i behovet for å levere meningsfylt rapportering tilbake til brukeren. Mens det opp til nå har vært tilstrekkelig å bruke tonesignaler for å frembringe denne informasjon, nærmer man seg nå det punkt hvor disse kanskje ikke er tilstrekkelig.
Et visst forsøk på en løsning kan gjøres ved å bruke inn-spilte meldinger, men disse lyder av et antall ulemper. På grunn av meldingenes beskaffenhet er det nødvendig at hver frase blir sammensatt av lytteren ved begynnelsen av dens periode. Dette medfører tilbakespoling eller hurtig fremspoling av et bånd til begynnelsen av den nødvendige setning for hver melding. Den maksimale aksesstid for en melding ved bruk av et slikt system, er lik tilbakespolingstiden for hele båndet. En ytterligere ulempe ved denne fremgangsmåten er at bare en setning kan utmates om gangen.
Alternativt kan hver setning befinne seg på en separat, kontinuerlig løpende båndsløyfe. Den maksimale aksesstid for hver setning blir ved hjelp av denne metoden redusert til lengden av setningen. Selv om mer enn 1 setning kan mates ut til enhver tid, kan hver setning bare benyttes av én kanal om gangen, noe som gjør sammenkjedning av setninger eller fraser til en praktisk umulighet. Videre er det nødvendig med en båndspiller for hver setning. Selv om et slikt system er mulig for en stor offentlig sentral som ikke krever setningssammen-kjeding, vil størrelsen og omkostningene være altfor store for
en PABX.
Taledataene kan lagres i et digitalt format i lageret eller hukommelsen. Den maksimale frekvens som er nødvendig for å tillate rimelig kvalitetstale over en telefonlinje, er 4 kHz. Dette betyr en samplingsfrekvens på 8 kHz. Ved å bruke 8 bit pr. sampel, gir dette en bithastighet på 64000 bit pr. sekund (b.p.s.). Den ventede innledende størrelse av hussentralens talebibliotek er omkring 110 sekunders tale, noe som krever et lagerrom på 860 k byte eller 430 k ord. Den foreliggende lagerkapasitet for hussentralen er 1 M ord, det betyr at nesten halvparten av den tilgjengelige hukommelse ville brukes til å lagre taledata og ikke muliggjøre noen fremtidig utvidelse.
Ulempene kan overvinnes ved bruk av talesyntetiserings-teknikker. Denne reduserer i betydelig grad lagringsbehovene sammenlignet med lagret tale, og setninger eller fraser kan innledes ved sin begynnelse uten at det er nødvendig å spole tilbake noe fysisk medium.
Det er fire hovedområder hvor talesyntetisering kan brukes til å muliggjøre anvendelse av talerespons i hussentralen. Disse er:
Supplementering av feiltoner,
indikering av facilitetsaktivering,
indikering av ruting, og
tilveiebringelse av hjelpeinformasjon.
For øyeblikket blir to toner brukt til å indikere i overkant av 100 forskjellige feiltilfeller under samtaleoppsetting eller facilitetsaktivering. Årsakene til disse feil varierer fra utilgjengelige ressurser gjennom utstyrsfeil til feilbe-handling fra brukerens side.
Feiltoner må tilveiebringes uten særlig forsinkelse etter at feilen er blitt detektert, og enhver supplementerende melding bør leveres like raskt.
Ved fullføring av den supplerende melding blir den tone-sekvens som leveres løpende, påbegynt. Dette finner sted umiddelbart hvis stemmerespons ikke tilveiebringes av én eller annen grunn.
Aktivering av en facilitet blir indikert på én av tre måter. Når en facilitet blir aktivert, blir bekreftelse vanlig vis tilveiebragt ved tilførsel av en omkoblingstone. Når en facilitet blir kansellert, er ofte fortsatt drift tillatt slik at den tilveiebragte tone i disse tilfeller er vanlig eller spesiell (avbrutt) summetone. I de fleste andre tilfeller er gjeninnkobling av ringesignalet den eneste gitte bekreftelse.
I det første tilfelle er det mulig å tilveiebringe verbal bekreftelse på at faciliteten ble anropt med heldig resultat, slik at det er ønskelig for konsekvensens skyld å tilveiebringe en lignende indikasjon når faciliteten er kansellert, forutsatt at den forsinkelse dette vil medføre, ikke blir uakseptabel. Der hvor gjeninnkobling finner sted, blir enhver forsinkelse betraktet som uakseptabel.
Det vil også være nyttig å supplere bruken av spesiell summetone for å indikere hvilken facilitet som er aktivert.
Når f.eks. både "ikke forstyrr" (do not disturb - DND) og samtale-viderekobling er aktivert, bør bare sistnevnte indikeres .
Det er følgelig et formål med den foreliggende oppfinnelse å tilveiebringe en talesyntetiserings-enhet for bruk i en telekommunikasjons-sentral hvor enheten er forsynt med forbindelses-anordninger som tillater enheten å bli koblet til sentralen slik at sentralen styrer enheten for å aktivere kretsanordninger i modulen til å generere en tale-svar-melding som passer til den spesielle sentraltilstand for å informere en bruker av sentralen om tilstanden.
Ifølge en side av den foreliggende oppfinnelse er det tilveiebragt en talesyntetiserings-enhet hvor kretsanordningen blir aktivert på en måte som tillater tale-svar-meldingen å bli generert for å supplere tilstandsindikerende toner som brukes til å informere en bruker av sentralen om tilstanden.
Ifølge en annen side ved den foreliggende oppfinnelse er det tilveiebragt en talesyntetiserings-enhet styrt av et data-maskinprogram hvor programmet er konstruert ved å bruke en strukturert programmeringsfremgangsmåte, idet fremgangsmåten medfører skapelse av datastruktur-diagrammer kombinert til en grunnleggende programstruktur og utvidet til å omfatte alle programoperasjoner fra hvilke en pseudokode blir skrevet.
En utførelsesform av oppfinnelsen vil nå bli beskrevet
under henvisning til de vedføyde tegninger, hvor:
Figur 1 viser et blokkskjema over en talesyntetiserings-enhet ifølge den foreliggende oppfinnelse, Figur 2 viser et blokkskjema av CPU-, lager- og adressedekodings-logikken i modulen på figur 1, Figur 3 viser et lagerkart for talesyntetiserings-enheten, Figur 4 viser et blokkskjema over en talesyntetiserings-prosessor som brukes i talesyntetiserings-enheten, Figur 5 viser et tidsdiagram over tale-utgangsstrømmen fra prosessoren på figur 4, Figur 6 viser et blokkskjema over tids-styre- og tilpasnings-logikken som er vist på figur 1, Figur 7 skisserer en tabell som viser en kommandostruktur for stemmesyntetiserings-enheten, Figur 8 viser et tidsskjema for en mottagnings- og sende-kommandosyklus i det blokkskjemaet som er vist på figur 6, Figur 9 viser en representasjon av Jackson-strukturert programmering,
Figur 10a viser inngangsdata-strukturen,
Figur 10b viser datastrukturen for den eksterne tale-kommando-utgang, Figur 10c viser datastrukturen over taledata-utgangen, Figur 11 viser et blokkskjema over stemmesyntetiserings-enhetens grunnleggende programstruktur, Figurene 12a og 12b viser et blokkskjema over programstrukturen for en tilbakestillingsrutine, når figur 12b er plassert til høyre for figur 12a og forbundet ved punkt A, Figur 13 viser et blokkskjema over program-hovedstrukturen for stemmesyntetiserings-enheten, Figur 14 viser et blokkskjema over en P.VCOMM-programstruktur , Figur 15 viser et blokkskjema over en P.VSTAT-programstruktur, og Figur 16 viser et blokkskjema over en P.SPDAT-programstruktur.
Den følgende beskrivelse definerer maskinvaren og maskinvare/programvare-tilpasningsbehov for realisering av et tale-svar-system for en PABX ved hjelp av talesyntetisering. Krets-kortet blir referert til som talesyntetiserings-enheten (VSM =
Voice Synthesis Module).
Talesyntetiserings-enheten består av åtte talesyntetiserings-kanaler, og er anbragt på mellomhylle-bussen (ISB = intershelf bus) på tilsvarende måte som et tonegenerator-
kort. Dette muliggjør aksess til en VSM fra alle internlinje-kort.
Tilstrekkelig lagerplass er inkludert på stemmesyntetiserings-enheten til å muliggjør minst 200 sekunder med taledata. Dette lageret er istand til å bli adressert ved å bruke åtte bit av databussens øvre byte. Talesyntetiserings-enheten har evne til å bufferlagre minst to setnings- eller frase-adresser. Hver talekanal har aksess til enhver setning og
hver setning er tilgjengelig for mer enn én kanal. Talesyntetiserings-enheten tillater frase-sammenkjeding. Hver frase eller setning er tilgjengelig fra begynnelsen av sin periode og enhver melding kan avbrytes til ethvert tidspunkt. Taktstyring og styring av taledata blir utført på talesyntetiserings-enheten, men grensesnitt-tidsstyring er under styring av PABX-systemet.
Kommandoer blir mottatt fra adressebussen og blir spesifi-sert for mottagelse fra og sending til PABX-databussen, kanal-overføring til PABX-databussen, opp- og ned-kort og avbryt-nings-kanalutgang. Mottagningskommandoen (fra databussen) indikerer at en fraseadresse er tilgjengelig på databussen og sende-kommandoen (til databussen) er en anmodning om at utgangen fra et statusregister på kortet blir ført ut på bussen. Status-informasjonen tilveiebringer indikasjoner på hvilke kanaler som for øyeblikket "taler" og buffertilgjengelighet. Kommando-ene for mottagning fra og sending til databussen, kanalover-føring og kanalavbrytning inneholder også all nødvendig kanal-informasjon.
De fraser som skal brukes, krever stor omtenksomhet og
et skreddersydd bibliotek er nødvendig.
Det vises nå til blokkskjemaet på figur 1 der talesyntetiserings-enheten er vist og den vil nå bli diskutert. Talesyntetiserings-enheten inneholder åtte talesyntetiserings-kanaler SYN og ett taledata-bibliotek som befinner seg i opp til 328 k bit EPROMS SL. Et av disse EPROMS inneholder også fast-
varen SF for talesyntetiserings-enhetssystemet.
Sentralenheten (CPU) er en 16 bit mikroprosessor og blir brukt på grunn av behovet for å multiplekse åtte talesyntetisatorer til et taledata-bibliotek. For å unngå problemer med busskapasiteten, styrer mikroprosessoren overføringen av taledata fra biblioteket SL til hver syntetisator SYN. Synteti-satorene er kartlagt inn i lageret og blir derfor adressert som lagersteder.
Adresse-dekodingslogikken ADL dekoder adressen fra sentral-enheten CPU og klargjør talesyntetisatorene SYN, inngangen til statusregisteret SR og utgangen fra kanal- og frase-inngangslogikken CPIL. Taktstyrings-, styrings- og tilpasnings-logikken TCI styrer innmatningen av informasjon fra adressebussen AB og databussen DB til kanal- og frase-inngangslogikken DPIL og ut-matningen av informasjon fra tale-utgangslogikken SOL og statusregisteret SR til databussen DB.
Ved oppstarting av talesyntetiserings-enheten eller ved mottagelse av et tilbakestillingssignal RST fra PABX, tilbakestiller taktstyrings-, styrings- og tilpasnings-logikken TCI sentralenheten CPU, og kanal- og frase-logikken CPIL. Sentral-enheten entrer så en tilbakestillingsrutine som tilbakestiller talesyntetisatorene SYN og tømmer statusregisteret SR. Taktstyrings-, styrings- og tilpasnings-logikken TCI mottar også system-taktsignalene SCK fra PABX. Avsøkning av talesyntetisatorene SYN etter tur blir så påbegynt av sentralenheten. Hver syntetisator SYN blir kontrollert for en data-anmodning, og mellom hver syntetisatoraksess blir kanal- og frase-logikken CPIL kontrollert med hensyn til ny fraseinformasjon. Statusregisteret SR blir oppdatert etter hver kanalaksess.
Under styring av PABX-programvaren taktstyrer taktstyrings-, styrings- og tilpasnings-logikken TCI kanalnummeret og frase-nummeret inn i kanal- og frase-inngangslogikken CPIL. En indikasjon på at nye kanal- og frase-nummere er tilgjengelig, blir flagget til sentralenhetens CPU. Disse nummere blir lest av sentral-enheten i løpet av dens avsøkningsrutine, og sentral-enheten setter den nødvendige syntetisator SYN igang med å "tale".
Den digitale taleutgangen blir omformet fra serie til parallell og blir låst klar for utmatning til databussen DB. Taktstyrings-, styrings- og tilpasningslogikken TCI sender kanalnumre og utmatningskommandoen til taleutgangs-logikken SOL. Taledata blir A-lovkompandert før de mates ut på databussen .
Statusregisteret SR blir lest av PABX-systemets programvare ved å sende en utmatningskommando via taktstyrings-, styrings- og tilpasningslogikken TCI til statusregisteret SR. Data fra statusregisteret SR blir matet direkte ut på databussen DB.
Sentralenheten CPU som brukes på talesyntetiserings-enheten er en enkelt 16 bits mikroprosessor med 40 ben, enkel 5 volt forsyning og med 256 byte i et direktelager RAM på brik-ken. Instruksjonssettet er basert på en lager-til-lager-arkitektur som benytter flere registerfiler i lageret. Den eksterne databussen er 8 bit bred, men instruksjonssettet tillater både ord- og byte-operasjoner. Seriemessig inn/utmatning med varierende bitbredde blir utført ved bruk av en kommunikasjonsregister-enhet (CRU). En taktgenerator på fra 4 til 12 MHz er nødvendig, og som slik blir benyttet en intern krystallstyrt oscillator eller en ekstern frekvenskilde. Et CLKOUT-signal blir generert som er 1/4 av den fundamentale taktfrekvens. VENTE-tilstander kan genereres for eksterne lagerperioder, eksterne CRU-perioder og eksterne instruksjons-perioder. Automatiske VENTE-tilstander kan genereres for bruk i hver ekstern lagersyklus eller periode.
Blokker med lagerord kalt arbeidsrom, blir brukt av sentral-enheten til manipulasjon av instruksjonsoperanden. Et arbeidsrom kan oppta 16 påfølgende ord i enhver del av minnet som ikke er reservert for annen bruk. Data eller adresser kan befinne seg i individuelle arbeidsromregistere, eller de kan funksjonere som akkumulatorer eller operand-, adresse- eller indeks-registere. Under utførelsen av visse instruksjoner inntar noen arbeidsromregistre spesiell betydning. Arbeidsrommet blir lokalisert i lageret ved å bruke en maskinvare arbeidsrompeker
(WP). Dette er et 16 bits register som inneholder adressen til det første ord i arbeidsrommet. Arbeidsromkonseptet er spesielt verdifullt under operasjoner som krever en sammenhengsbryter. En slik blir oppnådd ved ganske enkelt å forandre arbeidsrom-pekeren. Talesyntetiserings-enheten benytter to arbeidsrom
lokalisert i det interne RAM-område til sentralenheten. Figur 2 viser forholdet mellom VSM-lageret, CPU og adressedekodings-logikken, og figur 3 viser lagerkartet. Det vises nå til figurene 2 og 3 hvor systemets fastvare SF og talebibliotek SL befinner seg i tre slettbare leselagre (EPROM). VSM-fastvaren er tilordnet 2 k byte ved bunnen av lageret. Fraseadresse-listen tar opp 512 byte fra og med lagersted BEOO. Dette etterlater 45,5 k byte av lageret til taledata. De åtte talesyntetiserings-prosessorene (VSP), kanal- og frase-FIFOene (først inn/først ut-lageret) og talestatus-registeret er også utformet som lagersteder for å trekke fordel av lagerarkitek-turen til sentralenheten CPU.
Sentralenheten styrer alle dataoverføringer mellom lager, talesyntetiserings-prosessorer, kanal- og frase-FIFOer og statusregisteret SR på figur 1. Den utfører også adresse-beregninger og lagrer all dynamisk informasjon.
Ved igangsetting eller ved mottagelse av et CARD RESET-signal fra taktstyrings-, styrings- og tilpasnings-logikken TCI, figur 1, tilbakestiller sentralenheten alle talesyntetiserings-prosessorene. Den gjør dette ved å skrive åtte databyte bestående av bare enere, fulgt av en tilbakestillings-byte til hver talesyntetiserings-prosessor etter tur. Etter tilbakestilling av hver talesyntetiserings-prosessor leser sentralenheten talesyntetiserings-prosessorens statusbyte for å kontrollere at tilbakestilling har inntruffet. Hvis talesyntetiserings-prosessoren ikke er blitt tilbakestilt, forsøker sentralenheten CPU igjen å tilbakestille den.
Når alle talesyntetiserings-prosessorene er blitt tilbakestilt, kontrollerer sentralenheten sin CRUIN-inngang for å bestemme om nye kanal- og frase-numre er tilgjengelige. Hvis der ikke er noen data tilgjengelig, begynner sentralenheten å av-søke hver talesyntetiserings-prosessorkanal etter tur, idet den begynner med kanal 0, for dataanmodning. Talesyntetiserings-enhetens statusregister SR, figur 1, blir oppdatert etter hver aksess av talesyntetiserings-prosessorkanalen og CRUIN-inngangen blir igjen kontrollert.
Hvis nye kanal- og fraser-numre er tilgjengelige, leser sentralenheten kanal-FIFOen og frase-FIFOen etter tur. Kanalnumre angir hvilken talesyntetiserings-prosessor som skal frem- si den antydede frase. Frasenummeret tilveiebringer en indeks til en frasepeker-tabelladresse som så peker til adressen for den første byte av de nødvendige taledata. Frasenummeret er tilknyttet frasepeker-tabellen ved følgende ligning: (frasenummer , x 2) + BEOO, r = frasepeker-tabelladresse,,
16 16c16
Frasepeker-tabelladressen og frasepeker-tabelladressen pluss én tilveiebringer sentralenheten med adressen til den første byte med taledata tilordnet den nødvendige frase.Frase-peker-tabelladressen pluss to og frasepeker-tabelladressen pluss tre tilveiebringer sentralenheten med startadressen til den neste påfølgende nummererte frase, dvs. sluttadressen for den nødvendige frase.
Når disse adressene er blitt beregnet og lagret i sentralenhetens arbeidsrom, sender sentralenheten en eksterntale-kommando til den talesyntetiserings-prosessorkanal som indikeres av kanalnummeret. 16 byte med taledata blir så overført fra biblioteket til talesyntetiserings-prosessoren og talesyntetiserings-prosessoren begynner å tale. Sentralenheten CPU opp-daterer så VSM-statusregisteret og begynner å avsøke talesyntetiserings-prosessorkanalene igjen med start fra der den sluttet.
Hvis taledata blir etterspurt fra én av talesyntetiserings-prosessorene under avsøkningsrutinen, forårsaker sentralenheten at ytterligere åtte byte med taledata blir overført til ved-• kommende kanal. Før hver taledata-byte blir overført til~~talesyntetiserings-prosessoren, blir databytens adresse sammenlignet med startadressen til den neste påfølgende nummererte frase. Hvis disse to adresser er like, forstår sentralenheten at den krevede frase er komplett og sikrer at ingen flere taledata blir utsendt. Hvis åtte byte ikke er blitt overført, sender sentralenheten byte med bare enere inntil åtte fulle byte er blitt overført.
Sentralenheten CPU fortsetter å veksle på denne måten, ved avsøkning av hver talesyntetiserings-prosessorkanal etter tur og kontroll av CRUIN-inngangen etter aksess til hver talesyntetiserings-prosessorkanal inntil enten en tilbakestilling: inntreffer eller talesyntetiserings-enhetens effekt er borte.
Siden talesyntetiserings-prosessorene, kanal-FIFO, frase-FIFO og VSM-statusregister er kartlagt inn i lageret, kan data-overføringer mellom sentralenheten og talesyntetiserings-enheten ansees som inndelt i tre typer. (1) Lagerlesning - fra EPROM, talesyntetiserings-prosessorer eller FIFOer til sentralenheten (2) lagerskrivning - fra CPU til VSPer eller statusregister
(3) CRU-lesning.
Under en lesning fra lageret setter sentralenheten den riktige lageradresse på CPU-adressebussen og avgir et signal MEMEN. Adressedekodings-logikken ADL dekoder denne adressen
og klargjør den riktige lageranordning. Sentralenheten avgir et signal DBIN og leser inn databyten etter at et signal READY går sant. En automatisk VENTE-tilstand blir generert under hver lageraksess. Dette gjør at adressen og signalene DBIN og MEMEN blir holdt en ekstra CLKOUT-periode uansett tilstanden til READY-inngangen for å sikre at gyldige data er tilgjengelig på databussen. Dette er ikke nødvendig under de fleste lagerakses-ser og tjener bare til å forsinke sentralenheten. Talesyntetiserings-prosessorene er imidlertid ikke istand til å ha gyldige data på databussen før om minst 6 mikrosekunder. READY-inngangen til sentralenheten blir i dette tilfelle brukt til å holde igjen sentralenheten inntil talesyntetiserings-prosessoren kan tilveiebringe gyldige data. Talesyntetiserings-prosessoren kan ikke ta READY-inngangen til sentralenheten i lav tilstand under den første CLKOUT-perioden til sentralenheten, og derfor er det behov for en automatisk VENTE-tilstand i dette tilfelle og derfor må alle lagerperioder utsettes for en forsinkelse på grunn av denne automatiske VENTE-tilstand.
Under en innskrivning i lageret avgir sentralenheten den riktige lageradresse på adressebussen og avgir signal MEMEN.
Den riktige lageranordning blir klargjort og sentralenheten avgir den databyte som blir skrevet inn i lageret, på databussen og avgir signal WE. Lagerinnskrivnings-perioden er fullstendig når READY-signalet er avgitt. Igjen er der en automatisk VENTE-tilstand generert på hver lageraksess fordi talesyntetiserings-prosessoren bruker minst 23 mikrosekunder til å lese inn dataene på databussen.
I løpet av en lesning fra en ekstern CRU-anordning, i dette tilfelle "data tilgjengelig"-flagget fra kanal- og frase-FIFOene, mater sentralenheten ut den riktige adresse på adressebussen. Signalet MEMEN forblir høyt. Sentralenheten strober signal DBIN og leser inn databiten via inngangen CRUIN.
READY-velgeren, RESEL, multiplekseren WS mux og multiplekseren RS mux blir brukt til å drive den riktige talesyntetiserings-prosessor i løpet av en aksessperiode for en talesyntetiserings-prosessor. Adressebit A13-A15 og ENABLE 0 sammen med ENABLE 1 i løpet av en lagerinnskrivnings-periode og ENABLE 2 i løpet av en lagerlesnings-periode blir brukt til å velge den riktige talesyntetiserings-prosessorkanal. Signalet DBIN blir multiplekset ved hjelp av multiplekseren RS mux for å frembringe en lesestrobe for den valgte talesyntetiserings-prosessorkanal, og på tilsvarende måte tilveiebringer utgangs VE et skrive-strobesignal. READY-velgeren velger READY-signalet fra VSP-kanalen, inverterer det og leverer
READY til sentralenheten.
Hvis sentralenheten er opptatt i en aksessperiode til en talesyntetiserings-prosessor når et CARD RESET-signal inntreffer, er det en mulighet for at READY-signalet vil være ved logisk null når CARD RESET-signalet går til logisk 1. Dette vil forårsake at de automatiske ventetilstander ikke blir generert. Det er nødvendig å taktstyre READY-utgangen fra READY-velgeren inn i en låsekrets RL og bruke CARD RESET-signalet til å forhåndsinnstille utgangen fra denne låsekretsen RL til logisk én under tilbakestilling. En fordel ved dette arrange-ment er at sentralenheten da er synkronisert til talesyntetiserings-prosessorene.
Det vises nå til figur 4 hvor talesyntetiserings-enheten bruker åtte talesyntetiserings-prosessorer VSP 1-8 anordnet som vist. Hver prosessor er en TTL-kompatibel integrert krets med 28 ben og dobbel forsyning, som bruker lineære, prediktivt kodede taletale til å frembringe syntetisk tale. Den inneholder CPU inn/ut-styrelogikk som tilpasning til en ekstern sentralenhet, et kommandoregister til å holde kommandodata fra sentral-enheten, et statusregister som tilveiebringer oppdatert informasjon til sentralenheten om talesyntetiserings-prosessorens tilstand, et 16 byte FIFO for å holde taledata sendt fra sentral- enheten etter en eksterntale-kommando, en talesyntetisator til å gjenvinne LPC-taledataene, en digital/analog-omformer for å frembringe en analog tale-bølgeform og taktstyrings-logikk.
Talesyntetiserings-prosessoren kan bruke taledata som er kodet ved å benytte LPC-teknikker ved en 8 kHz eller 10 kHz samplingshastighet. Prosessoren kan drives direkte av en ekstern klokke tilført OSC-inngangen. Denne eksterne klokke eller taktgenerator kan være avledet fra en av PABX-systemets klokker eller taktgeneratorer. En fordel ved dette arrange-ment er at VSP-utgangen er synkronisert med hussentralen.
CPU-databussen DB på figur 1 er tilkoblet åtte toveis buffere BFFl-8 som er konstruert for å tillate overføring fra sentralenheten til alle talesyntetiserings-prosessorene når den er klargjort av et signal EN. Ved tilførsel av et RS-signal til DIR-benet på én av disse buffere, kan data over-føres fra dets tilhørende prosessor til sentralenheten CPU.
Hver prosessor tilveiebringer en statusbyte på anmodning fra sentralenheten. Bare tre bit i denne byte inneholder data av noen betydning. Disse tre bit er talestatus (TS), buffer lavt (BL) og buffer tomt (BE). TS er ved logisk én når talesyntetiserings-prosessoren behandler taledata (dvs. tale).
BL er ved logisk én når det 16 byte FIFO er mer enn halvtomt. BE er ved logisk én når det 16 byte FIFO er løpt tomt for data under utførelse av en eksterntale-kommando.
Hvis det etter igangsetting eller tilbakestilling av PABX-systemet blir innskrevet ni byte som bare er enere i talesyntetiserings-prosessoren fulgt av en tilbakestillingskommando, så er talesyntetiserings-prosessoren garantert å bli tilbakestilt. Hvis talesyntetiserings-prosessoren er blitt -igangsatt i eksterntale-modus, så må det 16 byte FIFO fylles til over halvfullt før talesyntetiserings-prosessoren VSP vil begynne å behandle dataene i FIFO-lageret. Derfor er det nødvendig at ni byte med bare enere blir skrevet inn i talesyntetiserings-prosessoren. Når talesyntetiserings-prosessoren gjenkjenner den første byte, begynner den å behandle en stoppkode (bare enere), dermed stopper den å behandle data, tømmer FIFO-lageret og setter seg selv i kommando-modus hvoretter den umiddelbart mottar en tilbakestillingskommando.
Ved tilbakestilling blir talestatus TS slettet og enhver
taleaktivitet stanset, og det 16 byte FIFO-lager blir tømt,
noe som får buffer lavt BL og buffer tomt BE til å bli aktiv, talesyntetiserings-prosessoren blir innstilt til å tillate data å bli skrevet inn i kommandoregisteret og data å bli lest ut fra statusregisteret.
For å lese statusbyten forårsaker sentralenheten generering av signalet RS for den riktige talesyntetiserings-prosessoren. Dette signal forårsaker også at det tilhørende toveis databuss-buffer forandrer retning og tillater data-overføring fra talesyntetiserings-prosessoren til sentral-enheten. Ved mottagelse av signal RS tar talesyntetiserings-prosessoren READY-signalet til logisk én, ruter statusdataene til databussen og senker READY-linjen når dataene er stabile. Sentralenheten leser så statusbyten og tar signal RS til
logisk én. Talesyntetiserings-prosessoren frakobler så sine utganger. Frakobling av disse utganger kan imidlertid ta opp til 10,5 mikrosekunder, og denne forsinkelse er grunnen til de toveis databuffere som isolerer talesyntetiserings-prosessorens utganger fra databussen når signal RS går inaktivt .
Kommandoer blir sendt til talesyntetiserings-prosessoren ved at sentralenheten får signal WS til å bli påtrykt og sender-kommandoen ut på databussen. Talesyntetiserings-prosessoren får READY-signalet til å bli inaktivt (logisk én) og leser datene inn i kommandoregisteret. Ved fullføring av innles-ningen aktiverer talesyntetiserings-prosessoren READY-signalet, tolker kommandoen og utfører den. De to kommandoer talesyntetiserings-enheten bruker er tilbakestilling (RESET) og eksterntale (SPEAK EXTERNAL).
Ved mottagelse av en eksterntale-kommando blir talesyntetiserings-prosessoren satt i eksterntale-modus og sletter det 16 byte FIFO-bufferet. Alle data som mottas av talesyntetiserings-prosessoren blir så dirigert til dette buffer inntil talesyntetiserings-prosessoren mottar og utfører en stopp-kode. Så snart som én byte er blitt skrevet inn i bufferet, blir "buffer tomt"-signal BE inaktivt (lavt). Når sentral-enheten har lastet ni byte med data inn i bufferet, blir "buffer lavt"-signalet BL inaktivt, talestatus-signalet TS blir aktivt og talesyntetiserings-prosessoren begynner å behandle taledata fra bufferet. Ytterligere syv byte med data blir lastet inn i talesyntetiserings-prosessoren for å fylle bufferet.
Åtte byte med taledata fra bufferet vil frembringe minst
25 millisekunder med syntetisert tale. Når FIFO-lageret inneholder ferre enn ni byte med data, blir "buffer lavt"-signalet BL aktivt. Sentralenheten CPU har da minst 25 millisekunder
til å innse at "buffer lavt"-signalet BL er blitt aktivt, ved å lese talesyntetiserings-prosessorens statusbyte, og å begynne overføring av ytterligere åtte byte til talesyntetiserings-prosessoren. Dette kravet på 25 millisekunder dikterer også prosessorens hastighet. I det verste tilfelle må alle åtte kanaler ha 16 byte med data overført til seg. Dette inntreffer når alle talekanaler blir startet sammen. For å sikre at den første kanal kan få levert nye data når det er nødvendig, må sentralenheten være istand til å sende 8 x 16 byte med taledata og fullføre sin avsøkningsrutine til den første kanalen innen 25 millisekunder. Med den foreliggende fastvare blir dette oppnådd på omkring 3,5 millisekunder.
Sentralenheten vil fortsette å laste bufferlagere med taledata, åtte byte om gangen, inntil det når slutten av taledataene for det spesielle uttrykk eller frase som skal mates ut. Hvert uttrykk har en stoppkode innkodet ved sin slutt,
men for å sikre at talesyntetiserings-prosessoren virkelig mottar en stoppkode, sender sentralenheten byte med bare enere inntil talesyntetiserings-prosessoren gjenkjenner en stopp-
kode og stanser med å behandle taledata.
En syntetisert taleutgang arbeider i parallell med taledata-behandlingen. Prosessoren er istand til å mate ut tale på to måter, for det første som et 10 bits digitalt format i serieutmatning og for det andre, etter 8 bits digital/analog-omforming, som en analog bølgeform. Talesyntetiserings-
enheten VSM bruker den digitale utgang ettersom alle interne taleoverføringer på hussentralen blir utført digitalt.
Hussentralen PABX omformer alle tale-bølgeformer til åtte-bits parallelle A-lov-kompanderte digitale data. For å være kompatible med dette format, må den digitale utgang fra talesyntetiserings-prosessoren omformes fra 10 bits serie til 8 ; bits A-lov-kompandert. A-lov-omformingen finner sted like før dataene blir skrevet inn på PABX-systembussen, og vil bli be skrevet senere i forbindelse med taktstyrings-, styring- og tilpasnings-logikken.
Taktstyringen av tale-utgangsstrømmen er vist på figur 5. ROMCLK er en 160 kHz taktgenerator eller klokke utledet fra talesyntetiserings-prosessorens hovedoscillator og blir brukt til å generere et signal SHCLK som så brukes til å taktstyre den digitale taleutgang inn i et 16 bits skiftregister. Signal Til tilveiebringer en synkroniserings-puls og får nye data til
å ankomme på skiftregister-utgangene med en datafrekvens på
8 kHz.
På den fallende flanke av signalet Til blir en 11 bits teller på klokkegeneratoren PAL (programmable array logic) trigget. Klokken for denne telleren tilveiebringes av signalet ROMCLK. Mens telleren er åpen, blir signalet ROMCLK tillatt å forplante seg gjennom klokkegeneratoren PAL og ut på utgangen SHCLK. Etter telling til 11, blir utgangen SHCLK frakoblet
for dermed å forsyne det 16 bits skiftregisteret LSR med et 12 bits klokkesignal som er vist på figur 5. Seriedata-utgangen fra talesyntetiserings-prosessoren blir skjøvet inn i det 16 bits skiftregisteret på den stigende flanken av signalet SHCLK. De første og siste stigende flanker på signalet SHCLK forskyver ugyldige data inn i skiftregisteret, og derfor blir bare bit 2 til 11 i skiftregisteret brukt.
På den stigende flanke av signalet Til blir skiftregisteret på 16 bit lastet inn i et 16 bits utgangs-bufferlager som befinner seg på den samme brikke som skiftregisteret. Den digitale utgang fra talesyntetiserings-prosessoren blir så tilgjengelig i et 10 bits parallelt format for bruk i taktstyrings-, styrings- og tilpasnings-logikken.
Talesyntetiserings-modulen VSM må kunne motta fraser- og kanal-informasjon fra hussentralens kommando- og styreenhet CCU og overføre status og syntetisert tale til hussentralens
CCU og den mottagende internlinje. Taktstyrings-, styrings-
og tilpasnings-logikken styrer denne informasjonsutveksling og fører også styresignaler, slik som RESET, fra PABX-systemet til talesyntetiserings-enheten VSM.
Det vises nå til figur 6 hvor det er vist et blokkskjema over taktstyrings-, styrings- og tilpasnings-logikken. ULA
(Uncommitted Logic Array) er en integrert krets som er konstruert på bestilling og som utfører kommando-dekoding, tilpasnings-taktstyring og styresignal-generering. Kanal- og frase-nummeret blir klokket inn i kanal- og frase-FIFO-lageret, og statusregisteret overfører statusbyten til PABX-systemets data-buss under ULA-styring. Utgangsvelgeren klargjør én av åtte utgangs-multipleksere OMl-8. Disse multipleksere tillater utgangen fra deres tilordnede 16 bits skiftregistere å passere gjennom til adresseinngangene på A-lov-leselageret ROM. A-lov-leselageret tilveiebringer omforming fra 10 bits parallelle taledata til 8 bits A-lov-kompanderte taledata. Disse kompanderte taledata blir ført ut på PABX-systemets buss. Det toveis bufferlageret BDB bestemmer om data blir overført til eller fra PABX-systemets buss og blir klargjort av BTE-utgangssignalet
fra ULA.
PABX-systemets busser blir multiplekset ved hjelp av tids-telling. Adresse og data på disse busser blir endret én gang for hver 244 nanosekunder. Denne perioden blir kalt en tids-spalte og der er 512 tidsspalter, noe som betyr at hver tids-spalte blir endret én gang for hver periode på 125 mikrosekunder. Dette gir en datahastighet på 8 kHz. PABX-systemets databuss er delt i to åtte bits busser, kalt databuss for øvre byte og data-buss for nedre byte. En taleforbindelse blir oppsatt på følg-ende måte. Først blir én telefonikanal kommandert til å over-føre taledata på en halvdel av databussen og motta taledata på den andre halvdel av databussen i løpet av én av de 512 tids-slisser, unntatt tidsslissene 0 til 7. En annen telefonikanal blir kommandert til å motta data på den halvdel av databussen som den første kanal sender på, og overføre på den andre halvdel av databussen i løpet av den samme tidssliss som den første kanal. De to telefonikanaler har da en taleforbindelse mellom seg. En taleforbindelse mellom VSM og telefonkanalen blir oppsatt på lignende måte, bortsett fra at VSM ikke kan motta taledata, slik at en del av forbindelsen ikke blir oppsatt.
Hver telefonikort i PABX-systemet er gitt et unikt nummer, bestemt av den hylle og den sliss det er innsatt i. For å over-føre informasjon til og fra et spesielt kort i systemet, blir kortets hylle- og sliss-adresse avgitt på systemets 16 bits adressebuss. Adressebuss-bit 0-4 inneholder hyllenummere og bit 5-9 inneholder slissnummeret. De resterende adressebit, 10-15, blir brukt til å sende kommandoer.
Hylleadressen blir dekodet ved hjelp av hylletilpasnings-kortet som, når det gjenkjenner sin egen hylleadresse, buffer-lagrer adressebuss-bit 5-15 gjennom til hylleadresse-bussen. Disse opptrer som BAB5-15. Hvert kort på den hyllen sammen-ligner adressebuss-bit BAB5-9 med sin egen kortadresse, CADl-5. Denne sammenligning blir utført i ULA. Når et kort gjenkjenner sin egen adresse, låser det adressebuss-bit BAB10-15 inn i ULA, og disse opptrer som LAB10-14. LAB15 blir brukt internt i ULA. ULA tolker også den kommando som befinner seg i disse adressebit og genererer styre- og taktstyrings-signaler for å utføre kommandoen.
De kommandoer som gjenkjennes av talesyntetiserings-
enheten VSM er listet opp nedenfor og kommandostrukturen er vist i tabellen på figur 7.
(1) Opp/ned
(2) Les kanal- og frase-nummer fra henholdsvis adresse-
og data-buss
(3) Send statusbyte til databuss
(4) Send taledata til databuss
ULA reagerer også på to styresignaler, P3 RESET og SYN (systemnormalisering). Begge disse signaler genererer en CARD RESET-puls som tilbakestiller VSM, CPU og kanal- og frase-FIFO-lagrene umiddelbart.
Når DOWN-kommandoen (ned-kommandoen) er utført, blir ULA-utgangene frakoblet. Bare en RESET- eller UP-kommando (tilbakestillings- eller opp-kommando) vil gjenopprette logikken. Andre kommandoer har ingen virkning. En LED-indikator på talesyntetiserings-enheten viser hvilken tilstand talesyntetiserings-enheten VSM er i.
Når denne kommando er mottatt og dekodet, genererer ULA
en RECEIVE-puls og en BTE-puls (buss-sender/mottager klargjøring). RECEIVE-pulsen blir brukt av VSM til å taktstyre den låste adressebuss LAB10-14 inn i kanal-FIFO-lageret. Bit 12-14 på den låste adressebuss blir brukt av sentralenheten CPU som et kanalnummer, idet bit 11 er reserve. Kanal-FIFO-lageret er et "først inn/først ut"-lager med dybde på 16 ord og bredde på 5 bit.
Dette muliggjør stakklagring av opp til 16 kanaladresser i på-vente av at sentralenheten CPU skal lese FIFO-lageret. BTE-pulsen klargjør det toveis bufferlager BDB. Overføringsret-ningen til dette bufferlager blir bestemt av TRANSMIT-signalet fra ULA. Under normale forhold er TRANSMIT-signalet ved logisk null, og dette tillater data å passere fra hylledata-bussen til talesyntetisator-enhetens databuss. Ettersom talesyntetiserings-enheten ikke kan sende og motta data fra hylledatabussen på samme tid, blir bare halvdelen av databussen bufferlagret inn til talesyntetiserings-enheten. I løpet av en overførings-periode, går TRANSMIT-signalet til logisk én og data passerer fra talesyntetiserings-enhetens databuss til hylledata-bussen.
Tidsskjemaet for mottagnings-kommandoen er vist på figur
8. Den fallende flanke av signalet DCLK for å taktstyre RECEIVE-pulsen inn i en låsekrets, sletter låsekretsen på den stigende flanke av signalet BTE. Dette tilveiebringer taktpulsen for frase-FIFO-lageret som vist på figur 8, hvilket har en høy tids-periode på 122 ns og gir dataene en stabiliseringstid på 61 ns før dataene begynner å bli lastet inn i frase-FIFO-lageret.
Frase-FIFO-lageret er et "først inn/først ut"-lager med bredde 8 bit og dybde 3 2 byte. Bare 16 byte av dette lageret kan brukes ettersom kanal-FIFO-lageret bare er 16 ord dypt og det for hvert frasenummer også må være et kanalnummer. Frase-FIFO-lagerets utganger er permanent klargjort og blir bufret
inn på sentralenhetens CPU-databuss. Bufferlageret blir klargjort av sentralenheten når det ønsker å lese frasenummeret,
og etter at frasenummeret er blitt lest av sentralenheten, blir det neste tilgjengelige frasenummer klargjort på FIFO-utgangene klar for den neste CPU-aksess.
Sendestatus-kommandoen forårsaker en TRANSMIT-puls å bli generert av ULA. Dette får det toveis bufferlager BDB til å reversere sin retning og tillater data på talesyntetiserings-enhetens databuss å passere til hylledata-bussen. Signalet BTE blir brukt til å klargjøre bufferet. TRANSMIT-kommandoen blir portstyrt med signalet TTABTT og det resulterende signal åpner statusregisterets utganger til talesyntetiserings-enhetens databuss.
Kommandoen for overføring av taledata forårsaker også generering av en TRANSMIT-puls for å reversere det toveis bufferlager. Signalet BTE blir igjen brukt til å klargjøre bufferlageret. I dette tilfelle blir TRANSMIT-pulsen portstyrt med signal LABll, og det resulterende signal klargjør eller åpner en av de åtte utganger på utgangsvelgeren OS. Den utgang som åpnes, blir bestemt av signalet LAB12-14. Den valgte utgang klargjør så en av de åtte utgangsmultipleksere 0M1-0M8, og dette tillater de ti bit parallelle taledata fra det tilordnede seksten bits skiftregister å passere gjennom adresseinngangene til A-lov-ROM. Dette leselager ROM blir også klargjort av TRANSMIT-pulsen portstyrt med signalet LABll. Når leselageret ROM er klargjort, blir det brukt som en oppslags-tabell, adressert ved hjelp av de ti bits parallelle taledata.Datautgangene fra leselageret tilveiebringer åtte bits parallelle A-lov-kompanderte taledata, og disse blir overført via det toveis bufferlager BDB til hylledata-bussen.
Fastvaren er det styrende program, eller det operative system til talesyntetiserings-enheten VSM. Fastvare er et programvare-program lagret statisk på en integrert krets, dvs. ROM, PROM eller EPROM. Talesyntetiserings-enhetens VSM fastvare befinner seg i EPROM, idet det begynner ved lagersted 0000H (hexadesimalt), som er sentralenhetens omstart-lagersted. 2k byte av lageret er reservert i lagerkartet for fastvaren.
Fastvareprogrammet er konstruert ved å bruke Jackson-strukturert programmeringsteknikk. Dette er en programkonstruk-sjons-metode som baserer programmet på datastrukturene til det system det gjelder. Metoden medfører at det skapes datastruktur-skjemaer og at disse kombineres til en grunnleggende programstruktur. Dette blir så ekspandert til å omfatte alle programoperasjonene og til slutt kan en skjematisk logikk eller pseudokode skrives. Det er uavhengig av programmeringsspråk og maskinvare, slik at et ytterligere trinn er nødvendig for å frembringe den virkelige programkode, men dette er en enkel oversettelse av pseudokoden.
Datastruktur-skjemaene og programstruktur-skjemaene har funksjon som flytskjemaer. Programmets flytretning er fra topp til bunn, venstre til høyre i disse skjemaene. Det blir benyttet bare tre komponenttyper i Jackson-strukturert programmering, sekvens, iterasjon og valg. Sekvens refererer til en "først, så ..., til slutt"-prosedyre, iterasjon til en "om og om igjen"-prosedyre og valg til en "enten/eller"-prosedyre.
De grafiske representasjoner av disse komponenttyper er vist
på figur 9.
A representerer programmet som en helhet og er en sekvens av B så C så D. B selv er en iterasjon med den itererte del E, betegnet med en stjerne. Den itererte del kan inntreffe
null eller flere ganger avhengig av itererings-betingelsen.
C er et valg med valgdeler F og G, betegnet med en sirkel.
Bare én av disse deler blir utført, idet delen blir utført i avhengighet av betingelsen. Valg med bare én valgdel finnes også og er skissert med en tom, betingelsesløs valgdel.
Hver boks indikerer ikke til hvilken komponenttype den tilhører, idet dette blir bestemt ved å kontrollere det neste nivå nedenfor. Figurene 10a, 10b og 10c viser talesyntetiserings-enhetens datastruktur. Disse er inndelt i inngang og utgang, idet inngangsdata-strukturen er ytterligere inndelt i eksterntale-kommandoutgang og taledata-utgang. Der er en ytterligere utgang fra sentralenheten CPU, RESET-kommandoen til talesyntetiserings-prosessoren, men ettersom dette inntreffer bare én gang når sentralenheten blir tilbakestilt, blir det behandlet i en separat tilbakestillingsrutine. Figur 10a viser inngangsdata-strukturen til talesyntetiserings-enheten VSM. Den første blokken som er merket VSM INPUT, er en iterasjon med den itererte del, INPUT. Inngangen (INPUT) er selv en sekvens av COMMAND STATUS (kommandostatus), CHANNEL
& PHRASE (kanal og frase) og SPEECH STATUS (talestatus).
COMMAND STATUS betegner en inngang til sentralenheten som indikerer om nye kanal- og frase-nummere er tilgjengelige. CHANNEL
&PHRASE er et valg. Valgdelene, betegnet med sirkelen, har sine betingelser innskrevet i blokkene. Den venstre valgdelen blir utført hvis nye kanal- og frase-nummere er tilgjengelige. Hvis denne betingelse er oppfylt, blir kanal- og frase-nummeret lest inn i sentralenheten CPU sekvensielt. Den høyre valgdelen er tom. Endelig betegner SPEECH STATUS en inngang til sentral-enheten CPU som indikerer om en talesyntetiserings-prosessor VSP krever flere taledata. Figur 10b viser eksterntale-kommandoutgangens struktur. Hvis nye kanal- og frase-nummere er tilgjengelige, skriver sentralenheten CPU 16 byte med taledata inn i den relevante talesyntetiserings-prosessor. Dette er antydet ved hjelp av strukturens venstre side. Den høyre side er en tom valgdel som er innsatt for fullstendighetens skyld. Figur 10c viser taledata-utgangsstrukturen. Hvis en talesyntetiserings-prosessor krever flere taledata, skriver sentralenheten åtte byte med taledata inn i talesyntetiserings-prosessoren. Igjen er der en tom valgboks, og denne er innbefattet for å indikere at ingen ting skjer hvis det ikke mottas noen taledata-anmodning.
Datastrukturene som er vist på figur 10a, 10b og 10c kan nå brukes til å utvikle programstrukturen. Figur 11 viser den grunnleggende programstruktur.
Det vises nå til figur 11 hvor P.VSM betegner programmet som en helhet og er sammensatt av de sekvensielle elementer, P.RESET og P.VBODY. P.RESET er tilbakestillingsrutinen for talesyntetiserings-enheten VSM og vil bli behandlet senere. P.VBODY er hoveddelen av talesyntetiserings-enhetens fastvare og utføres gjentatte ganger inntil en maskinvare- eller programvare-tilbakestilling inntreffer. P.LOOP markerer begynnelsen av talesyntetiserings-enhetens avsøkingsrutine, og denne iterasjon opptrer åtte ganger for hver gjennomgang gjennom P.VBODY. Den itererte del av P.LOOP er P.VCHLP som er en rekkefølge av fem hovedrutiner: P.COMMAND, P.VCOOM, P.STATUS, P.VSTAT, og
P.CHAN.
P.COMMAND er den rutine som kontrollerer tilgjengeligheten av kanalnummer og frasenummer. Hvis disse er tilgjengelige, blir P.VCOMM utført og kanalnummeret og frasenummeret blir lest inn i sentralenheten. P.VCOMM genererer også eksterntale-kommandoen og skriver 16 byte med taledata inn i den relevante talesyntetiserings-prosessor VSP.
P.STATUS kontrollerer om der er en anmodning fra den avsøkte VSP om flere taledata. Hvis det er anmodet om taledata, blir P.VSTAT utført, og det skrives åtte byte taledata inn i
VSP.
P.CHAN markerer slutten av talesyntetiserings-enhetens av- søknings-rutine. Kanalnummeret blir inkrementert og P.LOOP gjentas så, idet neste kanal entres denne gang. Når P.LOOP
er blitt utført åtte ganger, blir kanalnummeret tilbakestilt til null. Den grunnleggende programstruktur kan nå utvides for å ta i betraktning de operasjoner som utføres av sentral-enheten CPU. Tilbakestillingsfunksjonen, P.RESET, kan utvides inn i den programstruktur som er vist på figur 12.
Kanalnummeret for VSP blir først satt til null. Dette blir brukt til å adressere den relevante talesyntetiserings-prosessor under tilbakestillingsrutinen. P.RBODY blir så ut-ført inntil alle åtte talesyntetiserings-prosessorkanaler er blitt tilbakestilt. P.RBODY er en iterasjon med iterert del P.RBODYITER som blir utført hvis kanalnummere er mindre enn åtte.
BYTE COUNT (bytetelling) blir satt til null, og denne telleverdi blir brukt til å bestemme antall iterasjoner av P.RLOOP og dermed antall byte som skrives inn i den talesyntetiserings-prosessor som er valgt av kanalnummeret. P.RLOOP blir utført hvis BYTE COUNT ikke er lik ni. En byte med bare enere blir skrevet inn i talesyntetiserings-prosessoren for hver gjennomgang gjennom P.RLOOP. Disse ni byte blir brukt til å fylle opp talesyntetiserings-prosessorens bufferlager og innstille det til tale hvis det er blitt energisert i ekstern tale-modus. Etter at hver byte er innskrevet i talesyntetiserings-prosessoren, inntreffer en forsinkelse på 299 |is, bestemt av antall gjennomganger gjennom P.RCNT1. Grunnen til denne forsinkelse er at hvis talesyntetiserings-prosessoren er blitt energisert i en tom tilstand, blir hver FF-byte (alle enere) gjenkjent av talesyntetiserings-prosessoren som en tilbakestillingskommando, og ingen ytterligere kommandoer kan sendes inntil tilbakestillings-kommandoen er blitt utført av talesyntetiserings-prosessoren. Dette krever en forsinkelse på 300 us. Ettersom andre instruksjoner blir utført i fastvare-koden før sentralenheten forsøker å skrive inn i talesyntetiserings-prosessoren igjen, er en fastvare-forsinkelse på 299 us mer enn nok for dette formål. BYTE COUNT (bytetelling) blir så inkrementert med én og P.RLOOP blir iterert igjen.
Når alle ni FF-byte er blitt sendt, blir en tilbake- stillingskomraando skrevet inn i talesyntetiserings-prosessoren. Talesyntetiserings-prosessoren gjenkjenner dette som en tilbakestillingskommando, enten fordi den har gjenkjent hver FF-byte som en tilbakestillingskommando og ser tilbakestillingskommandoen selv som ganske enkelt én mer, eller fordi FF-bytene ble gjenkjent som data, og når talesyntetiserings-prosessoren be-gynte å tale etter at den niende FF-byte ble innskrevet, ble den første FF-byte gjenkjent som en stopp-kode. I forsinkelsen på 299 us etter den niende FF-byte har talesyntetiserings-prosessoren tid til å stanse tale og klargjøre seg for en kommandoinngang. Etter tilbakestillingskommandoen er der en ytterligere forsinkelse på 299 us for å tillate talesyntetiserings-prosessoren å utføre sin tilbakestillingsrutine.
Etter denne forsinkelse blir en lesestatus-kommando skrevet inn i talesyntetiserings-prosessoren, hvilken får talesyntetiserings-prosessoren til å avgi sin statusbyte på sine utganger. Sentralenheten CPU leser statusbyten og kontrollerer for å se om talesyntetiserings-prosessoren er blitt riktig tilbakestilt. En forsinkelse på 13 us inntreffer etter at statusbyten er blitt lest for å tillate talesyntetiserings-prosessoren å stanse drift av sine utganger.
Hvis talesyntetiserings-prosessoren er blitt korrekt tilbakestilt, blir kanalnummeret inkrementert og den neste iterasjon av P.RBODY begynner. Hvis talesyntetiserings-prosessoren ikke er blitt tilbakestilt korrekt, blir tilbakestillingsrutinen gjentatt igjen for den kanalen.
P.VBODY markerer begynnelsen av hoveddelen til talesyntetiserings-enhetens fastvare. Programstrukturen for denne er vist på figur 13. Utførelse av P.VBODY begynner umiddelbart etter P.RESET og fortsetter inntil der er en maskinvare- eller programvare-tilbakestilling.
Kanalnummeret blir først satt til null og P.VCHLP begynner sin utførelse. P.VCHLP er en iterasjon med iterert del P.VCHLPITER og vil bli gjentatt inntil kanalnummeret når åtte. P.VBODY itereres så igjen idet kanalnummeret settes til null og åtte sløyfer av P.VCHLP utføres igjen.
Det ble foretatt en kontroll for å se om kanal- og frase-nummeret for påbegynnelse av en ny frase er tilgjengelig.
Hvis dette er tilfelle, blir P.VCOMM utført. Programstrukturen for denne seksjon er vist på figur 14 for tydelig-hets skyld.
Etter at det er foretatt en beslutning om utførelse av P.VCOMM og P.VCOMM er blitt utført som krevet, blir det foretatt en kontroll på talesyntetiserings-prosessoren som er valgt av kanalnummeret, for å se om frasedata kreves av den. Dette blir gjort ved å lese statusbyten for den relevante talesyntetiserings-prosessor. En forsinkelse på 13 us inntreffer etter denne innlesning for å tillate talesyntetiserings-prosessoren å stanse drift av sine utganger. Hvis talesyntetiserings-prosessoren har anmodet om frasedata, blir P.VSTAT utført. Programstrukturen for P.VSTAT er vist på figur 15.
Etter at P.VSTAT er blitt utført som krevet, blir kanalnummeret inkrementert og P.VCHLP blir iterert på nytt.
P.VSOMM er den programseksjon som setter en spesiell talesyntetiserings-prosessor igang med å tale, og blir utført bare hvis nye kanal- og frase-nummere er tilgjengelige. Sentral-enheten bestemmer dette i dette tilfelle ved å kontrollere sin CRU-inngang, den inngang til hvilken "data tilgjengelig"-flaggene fra kanal- og frase-FIFO-lagrene er portstyrt sammen.
Det foreliggende kanalnummer blir først spart for å gjøre det mulig å fortsette avsøkningsrutinen ved det punkt den ble forlatt. Sentralenheten oppnår dette ved ganske enkelt å forandre arbeidsrom-peker og bruke det annet arbeidsrom som et registerlager under skriveoperasjoner av frasedata. Det nye kanalnummer blir så lest fra kanal-FIFO-lageret, og frase-nummeret fra frase-FIFO-lageret.
Frasenummeret blir operert på som beskrevet tidligere for å generere en frasepeker-adresse. Dette tilveiebringer en adresse fra hvilken startadressen for den frase som skal uttales, kan leses fra. Sentralenheten leser i denne adressen og lagrer den i et register. Det er denne adresse som senere vil bli inkrementert og brukt til å trekke ut frasedata fra et EPROM. Startadressen for den neste frase etter den frase som skal uttales, blir også lest inn i sentralenheten, og det er denne adresse som virker som en stoppkontroll for sentral-
enheten.
BYTE COUNT (bytetelling) blir satt til 16 og en SPEAK EXTERNAL-kommando (eksterntale-kommando) blir skrevet inn i talesyntetiserings-prosessoren. En forsinkelse på 26 us inntreffer så for å tillate talesyntetiserings-prosessoren å akseptere og tolke kommandoen og gjøre seg klar til å motta frasedata.
Den programseksjon som er merket P.SPDAT er den rutine som brukes for å skrive et antall frasedata-byte til talesyntetiserings-prosessoren, idet det innskrevne nummer blir bestemt av verdien av BYTE COUNT. P.SPDAT er den eneste sub-rutine som brukes i fastvaren. Programstrukturen er vist på figur 16.
Etter at P.SPDAT er blitt utført, blir kanalnummeret tilbakestilt til sin avsøkningsverdi ved å gjenopprette arbeidsrom-pekeren og avsøkningsrutinen fortsetter.
P.SPDAT utfører overføringen av frasedata til den valgte talesyntetiserings-prosessor. Det antall byte som overføres, avhenger av begynnelsesverdien til BYTE COUNT. P.SPDAT1 vil utføres inntil BYTE COUNT er dekrementert til null.
P.SPEAK er et valg med to valgdeler. Enten er alle frasedata blitt innskrevet i talesyntetiserings-prosessoren, eller der er fremdeles flere frasedata som skal overføres, andre tilfeller foreligger ikke.
Hvis alle frasedata er blitt overført, inntreffer dette når frasedata-adressen blir lik begynnelsesadressen for den neste frase, FF byte blir skrevet inn i talesyntetiserings-prosessoren inntil det totale antall byte som er overført, er lik den opprinnelige verdi av BYTE COUNT. Hvis der fremdeles er frasedata tilgjengelig, blir den neste frasedata-byte over-ført til talesyntetiserings-prosessoren. Frasedata-adressen blir så inkrementert med én og det fullfører en gjennomgang
P.SPEAK.
BYTE COUNT blir dekrementert med én, og hvis den ikke er lik null, påbegynnes en ny iterasjon av P.SPDATl. Hvis BYTE COUNT er lik null, så er det riktige antall byte blitt overført til talesyntetiserings-prosessoren. Den foreliggende frasedata-adresse og startadressen for den frase som følger den frase som blir talt, blir lagret for å kunne sende data fra det korrekte lagersted når talesyntetiserings-prosessoren neste gang anmoder om frasedata. Disse adresser blir lagret i et direktelager.
P.VSTAT er den programseksjon som sender åtte byte med frasedata til talesyntetiserings-prosessoren når talesyntetiserings-prosessoren anmoder om det. Hvis talesyntetiserings-prosessorens statusbyte indikerer at FIFO-lageret er mindre enn halvfullt, så sender sentralenheten åtte byte med data til talesyntetiserings-prosessoren.
Frasedata-adressen og startadressen for den neste frase blir funnet frem fra sine lagringssteder i et direktelager RAM. Sentralenheten lagrer disse i registeret i det annet arbeidsrom og setter så arbeidsrom-pekeren til det første lagersted i det annet arbeidsrom. Dette tillater fastvarens 16 arbeidsrom-registere å fortsette uten på noen måte å påvirke de regi-stere som brukes i avsøkningsfunksjonen.
BYTE COUNT blir så satt til åtte og P.SPDAT blir utført. Straks P.SPDAT er blitt utført fullstendig, blir arbeidsrommet tilbakestilt til det første arbeidsrom. Dette blir gjort ved ganske enkelt å forandre arbeidsrom-pekeren til det første lagersted i det første arbeidsrom.
Pseudokoden er utviklet fra programmet og er vist nedenfor.
De taledata som brukes på talesyntetiserings-enheten er kodet ved å bruke en Texas Instruments Portable SpeechLab (PSL) som inneholder taleanalyse-talesyntetiserings-EPROM-programmerer og CPU-krets-kort. En mikrofon, høyttaler og VDU kan forbindes med den. Enhver frase opp til 10 sekunder lang talt inn i mikrofonen, blir analysert, kodet ved å bruke tonehøyde-eksitert LPC til "lineære prediksjons"-koeffisienter, lagret og syntetisert umiddelbart av brukeren. Brukeren kan så forandre den talte frase, enten ved å gjeninnføre den via mikro-foninngangen eller ved å redigere de lineære prediksjons-koeffisienter for å forbedre kvaliteten. Den endelig kodede frase kan så lastes inn i EPROM ved å bruke EPROM-programmereren.
Der er 12 syntetiserings-parametre, og disse blir lagret
i kodet form i PSL og senere i EPROM. Disse parametere er tonehøyde, energi og refleksjons-koeffisienter K1-K10. Hver
opptar mellom 3 og 6 bit, og velger en 10 bits parameter fra talesyntetiserings-prosessorens oppslags-leselager ROM under syntetiseringen. Totalt 50 kodebit vil være nødvendig hvis alle kodede parametere ble sendt for hver ramme på 2 5 us. Der er imidlertid tre spesielle tilfeller hvor en full ramme ikke er nødvendig. Fordelen ved dette er at bithastigheten kan reduseres betydelig.
Det første spesielle tilfelle er et resultat av det faktum at stemmeorganene forandrer form forholdsvis langsomt, og det er derfor mulig å gjenta tidligere refleksjons-koeffisienter ved å bruke en gjentagelsesbit. Når denne bit blir sendt, blir bare energi- og tonehøyde-data fremfunnet fra EPROM under syntetiseringen og de tidligere K1-K10 verdier blir tilbakeholdt.
For det annet krever ustemt tale færre refleksjons-koeffisienter enn stemt tale. Når tonehøyde-parameteren er null, blir bare koeffisientene K1-K4 lest ut fra EPROM.
Når til slutt energiparameteren er null, dvs. under pause-perioder mellom ord eller stavelser, er ingen andre data nød-vendig .
Kombinasjonen av disse tre tilfeller kan redusere den midlere bithastighet med 40% for mannlig tale og med litt mindre for kvinnelig tale.
Talekvaliteten som er nødvendig for frasene i VSM-biblioteket, er ikke så høy som den som kan frembringes i et telefonnett på grunn av den innsnevrede båndbredde. Biblioteket blir registrert på lydbånd av høy kvalitet i forbindelse med PSL for å sikre en så klar registrering som mulig, og regi-streringen eller innspillinger blir foretatt i et lydtett kammer som ikke er uten ekko. Talekvaliteten som tilveiebringes er tilstrekkelig for den ønskede bruk, spesielt etter redigering.
En av hovedfordelen ved denne fremgangsmåten er at frasebiblioteket kan endres eller utvides meget enkelt ved å bruke den samme taler, ganske enkelt ved å organisere en annen inn-spilling.
Når frasebiblioteket er blitt registrert eller innspilt
og redigert ved å bruke PSL, må det lagres på EPROM. Dette er lett gjort ved å bruke PSL EPROM-programmereren. Ettersom det største EPROM som PSL-programmereren kan programmere, er bare 32 k bit, er det nødvendig å dumpe hver frase inn i et 32 k EPROM, laste dette inn i en programmerer som kan behandle større EPROM og programmere det 128 k EPROM som brukes på talesyntetiserings-enheten fra denne programmerer. Fraseadresse-listen blir tilføyet ved 128 k EPROM som vil befinne seg i VSM-lageret ved lagersted 8000. Fraseadresse-listen begynner ved lagersted BEOO og programmeres for hånd.

Claims (8)

1. Talesyntetiserings-modul for bruk i en telekommunikasjons-sentral, karakterisert ved at enheten er forsynt med forbindelsesanordning som tillater enheten å bli forbundet med sentralen, slik at sentralen styrer enheten til å aktivere kretsanordninger i enheten til å generere en talesvar-melding tilpasset en spesiell sentraltilstand for å supplementere tilstands-indikerende toner som brukes til å informere en sentralbruker om tilstanden.
2. Talesyntetiserings-enhet ifølge krav 1, karakterisert ved at enheten omfatter en sentralenhet, et lager som inneholder et talebibliotek og flere talesyntetisatorer, idet sentralenheten er anordnet slik at under sin avsøknings-rutine, mottar den informasjon fra sentralen og entrer det lager som inneholder talebiblioteket, og fordeler de fremfundne data til en spesiell talesyntetisator som virker på dataene for å frembringe den syntetiserte talesvar-melding.
3. Talesyntetiserings-modul ifølge krav 2, karakterisert ved at talesyntetisatorene er multiplekset til det lager som inneholder talebiblioteket, og er kartlagt inn i lageret til sentralenheten slik at overføring av taledata fra det lager som inneholder talebiblioteket, til en spesiell multiplekser blir styrt av sentralenheten som adresserer den spesielle syntetisator ved sitt kartlagte lagersted.
4. Talesyntetiserings-enhet ifølge kra 2 eller 3, karakterisert ved at talesyntetiserings-enheten inneholder logiske anordninger for styring av frase-og kanal-nummersignaler som er mottatt fra sentralen, et frase-lager og et kanallager for lagring av frase-nummersignalene og kanal-nummersignalene, at enheten omfatter syntetisator-identifiseringsanordninger som reagerer på et kanal-nummersignal som genereres av kanallageret, for å identifisere hvilken talesyntetiserings-prosessor som skal aktiveres, og som reagerer på et frase-nummersignal som genereres av frase- nummerlageret for å utpeke en adresse i en frasepeker-tabell som peker til adressen for de nødvendige taledata.
5. Talesyntetiserings-modul ifølge krav 4, karakterisert ved at de logiske anordninger omfatter en utgangs-velger-krets som klargjør en spesiell utgangsmultiplekser for å slippe igjennom data fra et tilhørende skiftregister til en A-lov-omformingskrets før lagring av taledataene i et bufferlager før taledataene blir sendt videre til en sentral-systembuss.
6. Talesyntetiserings-enhet ifølge noen av de foregående krav, karakterisert ved at modulen blir styrt av et datamaskin-program hvor programmet er konstruert ved å bruke en strukturert programmerings-metode, hvilken metode med-fører opprettelse av data-strukturskjemaer kombinert til en grunnleggende programstruktur og utvidet til å innbefatte alle programoperasjoner, fra hvilken en pseudokode blir skrevet.
7. Talesyntetiserings-enhet ifølge krav 6, karakterisert ved at pseudokoden blir oversatt til en programkode for å tillate talesyntetiserings-enheten å implementere programet.
8. Telekommunikasjons-sentral omfattende en talesyntetiserings-enhet ifølge noen av de foregående krav.
NO855368A 1985-01-29 1985-12-30 Talesyntetiserings-enhet. NO855368L (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08502228A GB2170377B (en) 1985-01-29 1985-01-29 Voice synthesis module

Publications (1)

Publication Number Publication Date
NO855368L true NO855368L (no) 1986-07-30

Family

ID=10573607

Family Applications (1)

Application Number Title Priority Date Filing Date
NO855368A NO855368L (no) 1985-01-29 1985-12-30 Talesyntetiserings-enhet.

Country Status (13)

Country Link
EP (1) EP0194004A3 (no)
JP (1) JPS61177496A (no)
CN (1) CN86101238A (no)
AU (1) AU591886B2 (no)
DK (1) DK44586A (no)
FI (1) FI860404A (no)
GB (1) GB2170377B (no)
GR (1) GR860226B (no)
IN (1) IN166140B (no)
NO (1) NO855368L (no)
NZ (1) NZ214959A (no)
PT (1) PT81891A (no)
ZA (1) ZA86578B (no)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811382A (en) * 1986-09-05 1989-03-07 Sleevi Neil F Method and apparatus for applying messages in a telecommunications network
USRE34380E (en) * 1986-09-05 1993-09-14 Method and apparatus for applying messages in a telecommunications network
US5127004A (en) * 1989-09-15 1992-06-30 Rockwell International Corporation Tone and announcement message code generator for a telephonic switching system and method
US5321740A (en) * 1991-06-20 1994-06-14 Quantum Systems, Inc. Telephone marketing system
US5557658A (en) * 1991-06-20 1996-09-17 Quantum Systems, Inc. Communications marketing system
GB2329549A (en) 1997-09-19 1999-03-24 Ibm Voice processing system
JP6496030B2 (ja) * 2015-09-16 2019-04-03 株式会社東芝 音声処理装置、音声処理方法及び音声処理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2288430A1 (fr) * 1974-10-17 1976-05-14 Materiel Telephonique Dispositif d'emission de message parle
GB1581477A (en) * 1978-05-19 1980-12-17 Post Office Apparatus for synthesising verbal announcements
GB2074814B (en) * 1980-04-22 1984-01-25 Plessey Co Ltd Reduction of operator involvement in sv1/cn1 calls
EP0093022B1 (en) * 1982-04-28 1985-09-25 THE GENERAL ELECTRIC COMPANY, p.l.c. Apparatus for generating a plurality of electric signals

Also Published As

Publication number Publication date
GB8502228D0 (en) 1985-02-27
FI860404A (fi) 1986-07-30
DK44586A (da) 1986-07-30
AU591886B2 (en) 1989-12-21
EP0194004A2 (en) 1986-09-10
FI860404A0 (fi) 1986-01-28
IN166140B (no) 1990-03-17
JPS61177496A (ja) 1986-08-09
DK44586D0 (da) 1986-01-29
PT81891A (pt) 1986-07-17
ZA86578B (en) 1986-09-24
CN86101238A (zh) 1986-11-12
GB2170377A (en) 1986-07-30
EP0194004A3 (en) 1988-10-05
GB2170377B (en) 1988-12-14
AU5261786A (en) 1986-08-07
NZ214959A (en) 1988-07-28
GR860226B (en) 1986-05-28

Similar Documents

Publication Publication Date Title
US5774854A (en) Text to speech system
EP0140777B1 (en) Process for encoding speech and an apparatus for carrying out the process
CA2351842C (en) Synthesis-based pre-selection of suitable units for concatenative speech
Allen Synthesis of speech from unrestricted text
EP2140447B1 (en) System and method for hybrid speech synthesis
US20030154080A1 (en) Method and apparatus for modification of audio input to a data processing system
WO1994007238A1 (en) Method and apparatus for speech synthesis
EP1559095A2 (en) Apparatus, methods and programming for speech synthesis via bit manipulations of compressed data base
JP2013072903A (ja) 合成辞書作成装置および合成辞書作成方法
NO855368L (no) Talesyntetiserings-enhet.
EP0016427B1 (en) Multi-channel digital speech synthesizer
JPH0454959B2 (no)
JPS6014360B2 (ja) 音声応答装置
JP6251219B2 (ja) 合成辞書作成装置、合成辞書作成方法および合成辞書作成プログラム
KR0175464B1 (ko) 전화번호안내용 음성데이타 제작방법
JP2536896B2 (ja) 音声合成装置
JPH11161297A (ja) 音声合成方法及び装置
JPS5950999B2 (ja) 音声合成装置
JPH0281099A (ja) テキスト音声合成装置
JPH07152396A (ja) 音声合成装置
JPH01147774A (ja) 翻訳通信システム
JPH03236099A (ja) 文章読み上げ装置
JPS5868799A (ja) 音声合成装置
JPS6134355B2 (no)
Phillips The Speech Synthesiser