JPH064089A - 音声合成装置 - Google Patents

音声合成装置

Info

Publication number
JPH064089A
JPH064089A JP3100927A JP10092791A JPH064089A JP H064089 A JPH064089 A JP H064089A JP 3100927 A JP3100927 A JP 3100927A JP 10092791 A JP10092791 A JP 10092791A JP H064089 A JPH064089 A JP H064089A
Authority
JP
Japan
Prior art keywords
register
bit
instruction
voice
circuit
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.)
Granted
Application number
JP3100927A
Other languages
English (en)
Other versions
JP3143488B2 (ja
Inventor
Alva E Henderson
イー.ヘナーソン アルバ
K Shiu Wai
ケイ.シウ ウエイ
R Thomas Jeffrey
アール.トーマス ジェフレイ
H Hite Michael
エィチ.ハイト マイクル
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH064089A publication Critical patent/JPH064089A/ja
Application granted granted Critical
Publication of JP3143488B2 publication Critical patent/JP3143488B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【目的】マイクロコンピュータおよび音声合成機能とを
近接して集約したことによりチップ寸法が小さい、従っ
て低価格であることである。さらに、音声合成装置はマ
イクロコンピュータと密に結合されていることによっ
て、柔軟性を増している。 【構成】音声回路10はマイクロコンピュータ12およ
び音声合成器機能14を有する。該機器は、14ビット
データバスおよび算術論理演算ユニットを共有する。励
起信号はROM20の中に、超過サンプリングデータと
ともに格納されている;必要であれば、複数個の励起信
号をROM20の中に格納できる。これとは別に、励起
信号をROM20に格納しないで、ソフトウェア的に発
生させることも出来る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般式には集積回路に係
わり、更に詳細には音声合成装置に関する。
【0002】
【従来の技術】音声合成は広い応用分野で使用されてお
りそれらは、おもちゃ、電話機返答装置、運行支援機、
パーソナルコンピュータ、機械制御、警報装置、身体障
害者用器具、学習支援装置、および計算機支援建築等を
含む。人間の声を再生するために線形予測符号化(LP
C)が、しばしば使用されている。
【0003】LPCを理解するためには、声道がどの様
に動作するかを理解することが重要である。音声は声道
内部での三つの要素、肺からの空気、空気の流れを音に
変換する制限物、および適当に共鳴させる場所にある口
腔の相互作用の結果である。肺からの空気は胸および横
隔膜の筋肉が収縮されたときに声道を通って排出され
る。圧力は音量調節として使用され、圧力が高ければ高
いほどより大きな音声となる。
【0004】空気が声道を通って流れる際に、もしも制
限物がなければごく僅かの音しか発生しない。声帯は制
限物のうちのひとつである。声帯は声道を横切って絞る
ことができ、空気の流れを止められる。声帯の内側で上
昇した圧力はこれを開こうとする。これが繰り返し発生
し、一連のパルスを生成する。声帯の緊張を変化させて
パルスの周波数を変えることができる。多くの言語音、
例えば「A」の様な音は、この種類の制限物から発生さ
れ、「有声」音と呼ばれる。
【0005】口腔内部の異なる種類の制限物は「白色」
雑音と呼ばれる。しーっという音の原因となる。「S」
音はよい例である。白色雑音は下と口の何処かが接近し
ている場合や、唇がすぼめられている場合に発生する。
この制限物は高速な流れを生じ、白色雑音を発生させる
乱流の原因となり、これは「無声」音と呼ばれる。
【0006】声帯からのパルスおよび乱流からの雑音
は、かなり広帯域で平坦なスペクトル特性を有する。言
葉を代えれば、これらは雑音であって音声では無い。口
腔の形状は雑音を識別可能な音声に変換する。舌、唇お
よび顎の位置は声道の共鳴を変化させ、制限された空気
流が発生する元の雑音を認識可能な音に変える。
【0007】LPCモデルは、先に述べた声道の各々の
要素に類似した要素を組み込んでいる。しかしながらL
PCモデルは、かなり数学指向であって音声合成に必要
な全ての機能を、広い範囲の応用分野で使用できる様な
低価格で、単一の合成回路上に組み込むことは不可能で
あった。
【0008】従って工業分野に於て、高品質の音声を低
価格で発生できる音声合成回路に対する必要性が高まっ
てきている。
【0009】
【発明の要約】本発明によれば、従来技術による音声合
成装置が有していた不具合を基本的に取り除いたり未然
に防止する、音声合成回路が提供されている。
【0010】音声回路は、音声合成機能を実行するため
の回路、マイクロコンピュータ機能実行回路、および前
記音声合成およびマイクロコンピュータ機能との間に演
算論理単位を配置するための回路とで構成されている。
【0011】本発明の技術的長所は、マイクロコンピュ
ータおよび音声合成機能とを近接して集約したことによ
りチップ寸法が小さいこと、従って低価格であることで
ある。さらに、合成装置はマイクロコンピュータと密に
結合されていることによって、柔軟性が増している。
【0012】
【実施例】本発明および長所をさらに完全に理解するた
めに、添付図を参照して以下の記述を行う。
【0013】本発明の出願された実施例は図面の図1か
ら図7を参照することによって、最も良く理解される、
種々の図面に於て対応する同一部品等には同一番号が付
されている。
【0014】図1は本発明による音声回路10の、出願
された実施例の機能ブロック図を示す。音声回路10は
マイクロコンピュータ回路12および音声合成回路14
を有する。マイクロコンピュータ回路12は二つのポー
ト(ポートAおよびポートB)に結合された入出力回路
16、マイクロプロセッサ18およびROM20とで構
成されている。音声合成回路14は二つの出力ポート
(DA1およびDA2)に結合されたアナログ出力を有
する。ALU24、RAM26およびタイミング回路2
8(発振器30を含む)はマイクロコンピュータ回路1
2と音声合成回路14とで共有されている。出願された
実施例に於て、音声回路10はLPC音声合成アルゴリ
ズムを12極格子フィルタ(以降LPC−12音声合成
アルゴリズムと言う)と四点FIRフィルタとを使用し
て実行する。内部マイクロプロセッサは音声データを内
部ROM20(または入出力ポートのひとつに接続され
た外部ROM)から取ってきて、音声データを複合しそ
して複合されたデータを合成器に送る。マイクロプロセ
ッサはまた、収集された音声データ間の内挿補正(平滑
化)を行う。合成器の出力はトランジスタまたは集積増
幅器を駆動するために使用できる。音声回路10内部の
汎用マイクロプロセッサ18はまた、種々の論理、演算
および制御機能が可能であって、合成作業以外にも同様
に使用出来る。
【0015】図2は音声合成器14で実行されるLPC
モデルを図式的に示している。励起機能発生器には符号
化された音の高低情報32および白色雑音34が入力さ
れる。次に波形にはエネルギー係数が掛け算されるが、
これは肺からの圧力に対応する。最後に信号機ディジタ
ルフィルタ36を通されるがこれは口腔の形状をモデル
化している。フィルタ出力はブロック38の中でディジ
タルからアナログに変換される。
【0016】図3はひとつの励起信号を示す。励起パル
ス40は、音の高低に対応する時間幅で分離されてい
る。各々の励起パルスはディジタル式にサンプル点42
で表現されており、その各々は図3では" X”と示され
ている。出願された実施例に於て、十個のサンプル点が
励起パルス40に与えられている。しかしながら音声の
質を強化するために、より詳細な音程分解能の為の超過
サンプリングが具備されている。出願された実施例では
十六倍までの超過サンプリングが用意されている;すな
わち超過サンプリング点44が隣接するサンプル42の
間に具備されている。従って十六倍超過サンプリングの
際には160のデータワードがひとつの励起パルスとし
て記憶されなければならない。
【0017】励起パルスの形状は、適用分野に依存す
る。複数の励起パルス形状を有している方が好ましい場
合もあるであろう。出願の実施例では160のデータ点
が記憶されているので、それぞれ八倍超過サンプリング
である二つの励起パルス、4倍超過サンプリリングであ
る四つの励起パルス、二倍超過サンプリリングである八
つの励起パルス、または超過サンプリング無しの十六個
の励起パルスを記憶することが可能である。
【0018】図4はタイミング図であって、マイクロプ
ロセッサと音声合成機能との間の周期分配を示してい
る。LPCがオンの時には(すなわち音声合成器が音声
データを処理している最中)マイクロプロセッサ12お
よび音声合成回路14は命令サイクルを交互に行う。各
々の命令サイクルは、予め定められた数の状態で構成さ
れている、出願された実施例では各々の命令サイクルは
八つの状態で構成される。この結果単一バスおよび単一
ALUをマイクロコンピュータ12と音声合成回路14
とで共有することができる。
【0019】図4に於て、クロックが高の時は音声合成
回路14が動作中でマイクロコンピュータは休止状態で
ある。同様にOpが高の時はマイクロコンピュータ12
が動作中で、音声合成器は休止中である。LPCがオン
の時はOfとOpとは交互に実行される。しかしながら
LPCがオフの時はOfは低状態に留まる一方Opは高
状態を持続するので、マイクロコンピュータ12は通常
の二倍で動作できる。
【0020】音声合成中、マイクロコンピュータ12と
音声合成器14はそれぞれサンプル点42の間で30の
命令サイクルを有している。しかしながらサンプル点間
の時間周期の間でサンプルデータは内部ROM20から
アクセスされなければならない。音声合成器14用のサ
イクル数を減少させる事なくサンプルデータを取り出す
ために、二サイクル(二バイト値)がサイクル引き抜き
回路を用いてマイクロコンピュータ側から引き抜かれて
いる。
【0021】音声回路のコストを下げるために、ピンの
本数は機能を犠牲にする事なく可能な限り減らされてい
る。図5は音声回路10用のピン配列を示す。ピン機能
を表1.に示す。
【表1】 表1 ピン機能記述 ピン 記述 名称 番号 ──────────────────────────────────── DA1 11 D/A変換出力。三つのマスクオプション指定可能。 INIT 6 初期化入力。INITが低になるとクロックが停止しTSP5 0C10/11は停電力モードに入り、プログラム計数器はゼ ロにセットされ、RAMの内容は保持される。プロセッサをリ セットするには1μ秒のINITパルスで十分である。 OSC1 7 クロック入力。OSC1およびOSC2間の水晶またはセラミ ック製共鳴器、またはOSC1への入力。10KHzサンプリ ング用には9.6MHz,8KHzサンプリング用には7.6 8MHzである。 OSC2 8 クロック戻り。 PA0- 1-4 8ビット双方向I/Oポート。 PA7 13-16 PB0-1 9-10 2ビット双方向I/Oポート。 VDD 12 5−V供給電源。 VSS 5 接地ピン。
【0022】図6は音声回路10の一般アーキテクチャ
を示す。単一14ビットデータバス48は、種々の回路
間での通信を提供している。整数フラグレジスタ50は
データバス48と整数フラグ’レジスタ52との間に双
方向接続されている。ALU54はバス48との間で双
方向接続されており、さらに整数フラグレジスタ50か
らのデータを入力できる。ALUはまた状態フラグレジ
スタ56とも双方向接続されており、この状態フラグレ
ジスタ56は、状態フラグ’レジスタ58と双方向接続
されている。AおよびBレジスタ60および62は、そ
れぞれデータバス48とA’およびB’レジスタ64お
よび66とに双方向接続されている。タイマ68はデー
タバス48に双方向接続されている。プリスケール、モ
ード、およびバッファ70、72および74はデータバ
ス48からのデータを受信するように動作可能である。
並列/直列変換器76はAレジスタとA’レジスタ64
との間のバスに接続されている。乱数発生器78はデー
タバス48にデータを出力するように動作する。Xレジ
スタ80はデータバス48とX’レジスタ82とに双方
向接続されている。全体として参照番号84で示されて
いるRAMは、16×12ビットRAM領域86、11
2×8ビットRAM領域88、ポートAに対する4×8
ビットI/O領域メモリマップ90およびポートBに対
する4×8ビットI/O領域メモリマップ92とで構成
されている。プログラム計数器94はデータバス48と
双方向接続されていて、ROM96に対してアドレスを
出力する。プログラム計数器94は更にスタックレジス
タ98と双方向接続されている。音声アドレスレジスタ
100もまた、ROM96に対してアドレスを出力する
ように動作する。ROM96はデータをデータバス48
に出力するように動作する。
【0023】ピッチ計数器102はピッチレジスタ10
4からデータを入力し、アドレスをROM96に出力す
る。ピッチレジスタ104はデータをデータバス48か
ら受信する。ディジタル/アナログ変換器106および
励起レジスタ108もデータをバス48から受信する。
合成器スタック110はデータバス48に双方向接続さ
れている。
【0024】ROM96は応用例に応じて、プログラム
命令および音声データ用に使用できる。ROM96内の
ある特定の場所は、表2に記述されているように、特定
の目的のために予約されている。この仕様の中で全ての
アドレスは16進表記であり、そうでない場合は明記さ
れている。それ以外の全ての数字は10進表記であっ
て、それ以外の場合は明記されている。
【表2】 表2 予約済みROMロケーション アドレス 機能 0000 INIT立ち上がり検出後、励起開始ロケーション。 0010-001F 割り込み開始ロケーション。
【0025】ROMは下記の四つの方法でアクセスされ
る: (1)プログラム計数器94が、ROM96からのプロ
セッサ命令のアドレス指定するために使用される。 (2)GET命令はROM96からの1から8ビットを
Aレジスタに転送するために使用できる。GET計数器
はLUAPS命令で初期化される。SAR(音声アドレ
スレジスタ)100は使用されるROMロケーションを
指定する。 (3)LUAA命令は一バイトをROM96からAレジ
スタ60に転送するために使用できる。LUAAが実行
されたときのAレジスタ60内の値は、使用されるRO
Mアドレスを示している。 (4)LUAB命令は一バイトをROMからBレジスタ
62に転送するために使用できる。LUABが実行され
たときのAレジスタ60内の値は、使用されるROMア
ドレスを示している。 プログラム計数器94は、次に実行される命令を指して
いる。命令が実行された後は、プログラム計数器94は
通常次の命令を指すようにひとつ進められる。
【0026】以下の命令は、プログラム計数器を変更す
る:BR(分岐)、SBR(短分岐)、CALL(サブ
ルーチン呼び出し)、RETN(サブルーチンからの復
帰)、およびRETI(割り込みからの復帰)である。
【0027】プログラム計数器スタック98は三つのレ
ベルを有する。サブルーチンが呼ばれるかまたは割り込
みが発生すると、プログラム計数器94の内容はスタッ
クに押し上げられる。RETN(サブルーチンからの復
帰)、またはRETI(割り込みからの復帰)が実行さ
れると、スタックロケーションの内容はプログラム計数
器94に戻される。
【0028】図7に於て、RAM84は128のロケー
ションを有する。最初の16個のRAMロケーションは
合成器で使用され、12ビット長である。残りの112
ロケーションは8ビット長である。音声合成が行われな
いときは、全てのRAM84はアルゴリズムデータ記憶
用に使用される。I/Oポートはまたは80から88の
RAMアドレス空間に写像される。
【0029】図6に於てALU54はマイクロプロセッ
サおよび合成器の為の演算および論理機能を実行する。
出願された実施例に於て、ALU54は14ビット長で
あり、音声合成が必要とする分解能を提供する。8ビッ
トデータがALUに転送されたときには、これらは右詰
めで揃えられる。上位6ビットへの入力は零(整数モー
ド)または8ビットデータのMSBに等しく(拡張符号
モード)、EXTSGおよびINTGR命令を使用して
選択された演算モードに依存する。全てのビット比較動
作は下位8ビットに対して実施される。ALUは8×1
4ビット掛け算を単一命令で14ビット出力で実行でき
る。
【0030】Aレジスタ60(またアキュムレータとも
呼ばれる)は基本的には14ビットレジスタであって、
演算および論理動作として使用される。その内容は、R
OM、RAMおよびその他のほとんどのレジスタ間で転
送できる。内容は、レベル−1割り込みの間は特定レジ
スタ(A’レジスタ64)に待避され、RETI命令で
復帰される。
【0031】Xレジスタ80は8ビットレジスタであっ
て、RAMインデックスレジスタとして使用される。直
接アドレス指定命令TAMDおよびTMADを除く、全
てのRAMアクセス命令はXレジスタ80を使用して特
定RAMロケーションを指定している。Xレジスタ80
はまた、汎用計数器としても使用できる。Xレジスタ8
0の内容はレベル1割り込みの間X’レジスタ82に保
存される。
【0032】14ビットBレジスタ62は一時記憶とし
て使用される。RAMアドレスを保存しておくことは、
これをXBX命令を用いてXレジスタ80と交換できる
ので有用である。Bレジスタ62はAレジスタ60と加
算、減算および置換する事が出来るので、演算時のデー
タ記憶として有用である。Bレジスタ62の内容はレベ
ル1割り込み中に保存される。
【0033】状態フラグ56は種々の命令によって、そ
の命令の結果に応じてセットされたり消去されたりす
る。BR,SBR,およびCALL命令は条件付きであ
って、状態フラグがセットされているときのみプログラ
ム計数器を変更する。
【0034】8ビットタイマ68は割り込みを発生させ
事象を計数するために用いられる。これはタイマプリス
ケールレジスタ70が16進数の00からFFに達する
毎に一度減数する。これはTATM命令を用いてロード
でき、TTMA命令で調べることが出来る。これが16
進数の00からFFに減数すると、レベル2の割り込み
要求が発生される。もしも割り込みが可能であってしか
も、既に割り込みが実行中でない場合は即座に割り込み
が発生する;もしもそうでない場合は、割り込み要求は
割り込みが可能となるまで保留される。タイマは再ロー
ドされようがされまいが計数を継続する。
【0035】8ビットタイマプリスケールレジスタ70
は、プロセッサクロックとタイマレジスタ68との間の
プログラム可能分割器である。これが16進数の00か
らFFに減数した時にはタイマレジスタ68もまた減数
される。次にタイマプリスケールレジスタ70は、プリ
セットラッチ内の値を再ロードされ計数を再び開始す
る。タイマプリスケールレジスタクロックは内部クロッ
クから供給される。内部クロックはチップのクロック周
波数の1/16である。TAPSC命令はプリセットラ
ッチをロードする。
【0036】12ビットピッチレジスタ104およびピ
ッチ計数器102は合成器の一部ではあるが、これらは
多くの意味でマイクロプロセッサに影響を与えている。
ピッチ計数器104は周期インパルス(励起機能)のタ
イミングを制御するが、これは声帯をシミュレートして
いる。ピッチ周期計数器は各々のフレーム中での全ての
音声パラメータの内挿を制御するためにも使用される。
このピッチ同期内挿法は、内挿する事によって音声のエ
ネルギーが最も低い部分に必然的に発生する雑音を最少
とし、音声基本周波数の倍音とする。
【0037】ピッチレジスタ104はLPC音声が合成
されるときに使用される。以下の記述はLPCモード状
態が実現されているものと仮定している。ピッチレジス
タはTASYN命令でロードされる。音声が開始すると
ピッチ計数器はリセットされる。ピッチ計数器102は
各々の音声サンプル毎に32づつ減数される、音声サン
プルは8KHzまたは10KHzの割合で発生する。ピ
ッチ計数器102の減数が零を通過した時にピッチレジ
スタがこれに加算される。ピッチ計数器102が16進
数で200となったときまたは、ピッチレジスタが加算
された結果が16進数で200以下であったときには、
レベル1の割り込みが発生する。この割り込みは内挿に
も使用できる。励起機能はピッチ計数器が16進数の1
40とゼロの間にある時に停止される。TASYN命令
を使用してデータがAレジスタ60からピッチレジスタ
に転送されるときには、Aレジスタ60のLSBおよび
MBSはゼロでなければならない。
【0038】音声アドレスレジスタ(SAR)100は
14ビットレジスタであって、内部ROM90内のデー
タを指定するために使用される。LUAPS命令はAレ
ジスタ60の値を音声アドレスレジスタ100に転送
し、並列/直列レジスタ76にSAR100によって指
定された内部ROMの値をロードする。次にGET命令
は一度に一から八ビットを、並列/直列レジスタ76か
ら取り出しアキュムレータ(Aレジスタ60)に送るた
めに使用される。並列/直列レジスタ76が空になると
いつでも、SAR100で指定された内部ROMの値で
ロードされ、SAR100は更新される。
【0039】8ビット並列/直列レジスタ76は一義的
には非パック音声データに対して使用される。これは音
声アドレスレジスタ100が指定する内部ROM98、
Xレジスタ80が指定する内部RAM84、または外部
音声ROM内のSAR100が指定する外部音声ROM
(例えばテキサスインスツルメントのTSP60C1
8)からデータの8ビットをロードできる。LUAPS
命令は並列/直列レジスタを初期化しそのビット計数器
をゼロとするために使用される。次にGET命令が使用
されて、一から八ビットを並列/直列レジスタ76から
Aレジスタ60に転送する。並列/直列レジスタ76が
空になると、これは自動的に再ロードされる。しかしな
がらGETがRAMからのときは、Xレジスタ80は自
動的には更新されない。モードレジスタ72内のEXT
ROMおよびRAMROMビットは、並列/直列レジス
タ76に対する信号源を制御する。
【0040】双方向線8ビットポートAおよび2ビット
ポートBは、外部装置とのインタフェースとして利用で
きる。各々のビットはそれぞれのデータ管理レジスタの
制御の元、入力または出力として個別にプログラム可能
である。さらに各々の出力ビットは、プッシュプルまた
はオープンドレイン(プルアップ無し)の二つの出力モ
ードの内のひとつに対してプルアップ可能レジスタを使
用して個別にプログラムを組むことも可能である。各々
の入力ビットは同一レジスタによって抵抗式プルアップ
または高インピーダンスとしてプログラムする事も可能
である。二つのI/Oポートの各々に関連する四つのレ
ジスタ90および92は、メモリ写像されている。ポー
トBの2ビットだけがチップ外部で仕様可能であり、そ
のレジスタの上位6ビットは不定である。任意のI/O
ポートレジスタからAレジスタ60への転送の際には、
Aレジスタ60の上位6ビット(ビット13−9)は不
定のまま残されている。I/Oレジスタの詳細を表3お
よび表4に示す。
【表3】 表3 I/Oレジスタ ロケーション レジスタ 型式 ポート Aポート ──────────────────────────────────── B データ入力レジスタ (DIR) 読み取り専用 80 84 プルアップ可能レジスタ (PER) 読み取り/書き込み 81 85 データ指定レジスタ (DDR) 読み取り/書き込み 82 86 データ出力レジスタ (DOR) 読み取り/書き込み 83 87
【表4】 表4 I/Oレジスタ ピン機能 要求ピン機能 DOR DDR PER ピン状態 ──────────────────────────────────── 入力、高インピーダンス X 0 0 高インピーダンス 入力、内部プルアップ X 0 1 受動プルアップ 出力、能動プルアップ 0 1 0 0 出力、能動プルアップ 1 1 0 1 出力、オープンドレイン 0 1 1 0 出力、オープンドレイン 1 1 1 高インピーダンス DDR、PER、およびDORレジスタの読み取りは、
これらに最後に書き込まれた値を示す。DIRの読み取
りは常にI/Oピンの実際値を示し、これはDDRが出
力用に設定されている場合も変わらない。この結果、入
力および出力間のポート切り替えを行う事なく双方向デ
ータフローが可能である。高電流が流れる状態を避ける
ために、データレジスタに" 1”を書き込む時のみオー
プンドレインであるピンに対して作用するように考慮さ
れている。
【0041】高インピーダンスI/Oピンを接続しない
状態で放置しておくと、プロセッサが動作モードのとき
に電力消費を増加させる原因となる。電力消費はVDD
SSとの間であって入力を通る電流増加は伴わない。こ
れは素子の機能に問題は与えない。この部分が待機モー
ドにいるときは、接続されていない高インピーダンスピ
ンは電力消費にも素子の機能にもなんの影響も与えな
い。
【0042】I/Oはまた従属モードとも成り得て、音
声回路をホストマイクロプロセッサの周辺機器として使
用可能とする。ポートAは8ビットデータバスに接続可
能で、R/W(ポートB1)およびチップ可能化(ポー
トB2)指令で制御される。読み込み(R/Wが高、チ
ップ可能化が低)指令はポートA出力がラッチしている
値をポートAに出力する。書き込み(R/Wが低、チッ
プ可能化が低)指令はデータバス上の値をラッチし、ポ
ートA入力ラッチに取り込む。さらにA出力ラッチの7
ビット目がクリアされる。この結果A7を書き込みハン
ドシェイク線として使用することが可能となる。このモ
ードでデータバス上で使用される全ての線路は、入力と
して形成されていなければならない。
【0043】外部ROMモードでは音声回路を例えば、
テキサス州ダラスのテキサスインスツルメント社製のT
SP60C18の様な外部音声ROMと、容易にインタ
フェースを組むことが出来る。ポートB0は外部ROM
のチップ可能化ストローブ出力として使用され、ポート
A7はクロックとして使用される。ポートA0からA3
はアドレスおよびデータ転送用に使用され、もうひとつ
の別のビットが外部ROMの読み取り/書き込み制御と
して使用されなければならない。
【0044】もしもPCMおよびLPCモードレジスタ
ビットが両方ともクリアされている場合は、B1の高か
ら低への状態遷移が1の割り込みを発生させる。これは
外部事象での割り込みを発生させるために使用できる。
【0045】モードレジスタ72(表5参照)は8ビッ
トの書き込み専用レジスタであって、これは音声回路の
動作モードを制御する。INITピンが低状態となる
と、全てのモードレジスタがクリアされる。モードレジ
スタ72はサブルーチン呼び出しや割り込み時には保存
されない。
【0046】合成音声発生の仕事はプログラム可能マイ
クロプロセッサと専用音声合成器との間で分担されてい
る。LPCおよびPCMモードレジスタで設定される四
つの音声合成器モードを以下の段落で説明する。
【表5】
【表6】
【0047】合成モード0(OFF)に於て、PCMお
よびLPCビットがともにクリアされている場合は、合
成器は動作不能である。全ての命令サイクルはマイクロ
プロセッサに委ねられる。TASYN命令はAレジスタ
60をピッチレジスタ104に転送し、LPC合成器が
始動する前にピッチレジスタ104へのロードが容易と
なるようにしている。このモードに於て、レベル1割り
込みはピンB1が高状態から低状態へ遷移する事によっ
てトリガがかけられる。
【0048】合成モード1(LPC)は、通常音声モー
ドである。TASYN命令はピッチレジスタ104をロ
ードし、ピッチレジスタ104が16進数で200以下
になるとレベル1割り込みのトリガがかけられる。命令
サイクルの内の53%が合成器で使用される。
【0049】マイクロプロセッサは音声合成を、パラメ
ータを取り出しかつ解読し、最新の間隔(フレーム速
度)を設定し、そしてフレーム間のパラメータを内挿す
る事によって実行する。音声合成器は12極ディジタル
式格子フィルタ、ピッチ制御または白色雑音励起発生
器、2極ディジタル式低域フィルタ、およびディジタル
/アナログ変換器として動作する。音声パラメータ入力
はマイクロプロセッサRAM内の専用空間から入力さ
れ、音声サンプルは8KHzまたは10KHzで生成さ
れる。マイクロプロセッサと音声合成器間の通信は、マ
イクロプロセッサRAM内の共有メモリ空間を介して行
われる。
【0050】合成器モード2(PCM)は音調および音
楽発生または非常に高いビット速度の音声に対して使用
される。マイクロプロセッサは全ての命令サイクルを使
用し、TASYN命令はAレジスタ60を直接D/Aレ
ジスタ106に転送する。レベル1割り込みは音声サン
プル速度の二倍(16KHzまたは20KHz)で発生
し、フィルタをかけられていないD/A出力にアクセス
する。
【0051】合成器モード3(PCMおよびLPC)で
は、PCMおよびLPCビットがともにセットされてい
て、LPC合成器は正常に動作しておりその励起機能は
ソフトウェアで提供されている。レベル1割り込みは音
声サンプル速度で発生し、TASYN命令はAレジスタ
60を合成器の励起機能入力108に転送する。このモ
ードはRELPS(剰余符号化線形予測合成)および同
様の技術と共に使用するために用意されている。
【0052】マイクロプロセッサは音声合成を、パラメ
ータを取り出しかつ解読し、最新の間隔(フレーム速
度)を設定し、そしてフレーム間のパラメータを内挿す
る事によって実行する。音声合成器は12極ディジタル
式格子フィルタ、ピッチ制御または白色雑音励起発生
器、2極ディジタル式低域フィルタ、およびディジタル
/アナログ変換器として動作する。音声パラメータ入力
はマイクロプロセッサRAM内の専用空間から入力さ
れ、音声サンプルは8KHzまたは10KHzで生成さ
れる。マイクロプロセッサと音声合成器間の通信は、マ
イクロプロセッサRAM内の共有メモリ空間を介して行
われる。
【0053】合成器はRAM内部のロケーション01か
ら0Fを使用する。合成が実行される際には合成器用の
パラメータはこれらのRAMロケーションから直接やっ
て来る。表6にそのアドレスを示す。
【表7】 表6 音声生成時のRAMマップ アドレス 解説 01 合成では使用せず 01 エネルギー 02 K12(LPC−12 値) 03 K11 04 K10 05 K9 06 K8 07 K7 08 K6 09 K5 0A K4 0B K3 0C K2 0D K1 0E C1(低域フィルタ) 0F C2
【0054】フレーム長はプリスケールレジスタ70に
入力される値で制御される。典型的な合成および内挿ル
ーチンでは、各フレーム毎にタイマを256カウントす
べて減数させるので、プリスケール値はこれらの条件で
適切なフレーム間隔を与えるように選択されなければな
らない。
【0055】音声回路10は合成器出力に接続された内
部ディジタル/アナログ変換器(DAC)を有する。D
ACは三つのパルス幅変調形式で利用できる。DACは
音声サンプル速度の二倍で動作し、PCMを除く全ての
モードでディジタル式低域フィルタがかけられる。合成
器がオフ(モード0)の時、DACはオフ状態となる。
この状態は二ピンおよび両頭一ピンモードにおけるゼロ
と同じであるが、単ピン単頭モードではDACは負の最
大値となる。この事実は音声開始時のクリックを避ける
ために考慮されなければならない。
【0056】音声回路10は二つの割り込み、割り込み
1と割り込み2とを使用する。両方ともモードレジスタ
内のビットで可能化および不能化される。割り込み1は
合成割り込みで、高い優先順位を有し多くのハードウェ
アの支援を得ている。割り込み1が発生すると、プログ
ラム計数器94はプログラム計数器スタック98上に配
置され、状態フラグ56、計数モードフラグ50、Aレ
ジスタ60、Bレジスタ62およびXレジスタ80はす
べて専用記憶レジスタにセーブされる。モードレジスタ
72はセーブされず、割り込み中にリストアされる。次
にプログラム計数器94に割り込み開始ロケーションが
ロードされ、割り込みルーチンの実行が開始される。割
り込みルーチンが復帰すると、これら全てのレジスタは
リストアされ、プログラム計数器もスタックから復帰さ
れる。
【0057】割り込み1は二つのモードレジスタビット
PCMおよびLPCの状態に依存する、四つの条件で発
生される。これらの条件、および各々の場合の割り込み
ルーチン開始アドレスを表7に示す。
【表8】 表7 割り込み1 ベクタ アドレス PCM LPC 割り込みトリガ ──────────────────────────────────── >0018 0 1 ピッチ計数器が16進数で200以下。 >001A 0 0 ピンB1が高から低に遷移。 >001C 1 1 10KHzクロック。 >001E 1 0 20KHzクロック。
【0058】割り込み2の優先度は低く、割り込み1に
対して割り込みをかけることは出来ない。これは割り込
み1によって割り込まれることは出来る。レベル2の割
り込み中セーブされるのは、プログラム計数器94、状
態ビット56および整数ビット50のみである。Aレジ
スタ60、Xレジスタ80およびBレジスタ62は、こ
れらが割り込みおよび割り込みをかけられたルーチンで
使用される場合は、プログラム側でセーブされなければ
ならない。モードレジスタ72はセーブされない。割り
込み2は常に計数が終了したタイマ、16進数で0から
FFとなるタイマ、でかけられるがその開始アドレスは
二つのモードレジスタビットの状態に依存している。
【表9】 表8 割り込み2 ベクタ アドレス PCM LPC 割り込みトリガ ──────────────────────────────────── >0010 0 1 全てのレベル2割り込みはタイマの計時終了 >0012 0 0 で引き起こされる。 >0014 1 1 >0016 1 0
【0059】割り込み1および割り込み2用の割り込み
条件は「割り込みペンディング」ラッチをセットする。
もしも割り込みが可能(そして割り込み2の場合は、割
り込み1ペンディング条件が発生していない)の場合
は、割り込みは直ちに実行される。しかしながら、割り
込みが可能で無い場合は割り込みペンディングラッチ
は、それぞれの割り込みがモードレジスタ72で可能化
されると直ちに割り込みを発生される。
【0060】割り込みは二バイト命令の真ん中、分岐ま
たはサブルーチン呼び出しの途中、またはサブルーチン
や割り込み復帰(RETNまたはRETI)の間は起き
ない。単一命令ソフトウェアループ(BRANCH,C
ALLまたはSBR命令自体)は、割り込みは決して発
生しないので避けなければならない。BRANCHやC
ALLの実行が連続すると、分岐命令(またはサブルー
チン呼び出し命令)のつながりが最終的に終了する時点
で命令の実行が終わるまで割り込みは遅れる。
【0061】連続する分岐(または呼び出し)が避けら
れたとしても、主レベルに於ける最悪の割り込み遅延は
四つの命令サイクルにある。最悪の遅延は割り込みが分
岐の第一実行サイクル中に発生し、分岐先アドレスの第
一番目の命令が二倍サイクル命令の時である。
【0062】割り込みが発生したときには、実行は割り
込みアドレスで始まる。状態ビットの状態は割り込み発
生時点で知られているので、BRまたはCALL命令は
第一番目の命令として使用されるべきではない。二つの
SBRは使用してもよい、なぜならそれらのひとつは常
に実行されるか、または状態ビットをセットする別の命
令を使用しそれに続いてSBRを実行することも可能な
ためである。
【0063】モードレジスタはセーブされず、割り込み
中にリストアされる。割り込み中にモードレジスタにな
される全ての変化は復帰後も実際上は残っていて、これ
は割り込みの可能化および不能化をも含み残っている。
【0064】出願された実施例には、61の異なる音声
回路命令が存在する(表9および表10)。それらのほ
とんどは単一命令サイクルの実行を要求するが、二つを
必要とするものもある。各々の命令は16クロック周期
必要とする;従ってクロック速度が9.6MHzの場
合、一秒当り600,000命令の翻訳を行う。LPC
合成が可能化されている際、全ての命令サイクルは合成
演算の為に実行され、2サイクル(各々の30命令サイ
クルフレームの内)が励起機能比較検索の為に使用され
る。このためプログラム用の命令サイクルは一秒当り2
80,000サイクルに低下する。
【表10】
【表11】表9の続き
【表12】表9の続き
【表13】表10
【0065】出願された実施例に於て、単一のALUが
合成およびマイクロプロセッサ機能として使用されてい
る。LPCだけに使用されている音声回路の素子は非常
に限られている。従って合成専用のチップ領域の割合は
比較的小さい。この結果前チップ領域、従って音声回路
の価格を従来に比べて下げることが出来る。
【0066】さらにマイクロプロセッサ機能および合成
器機能を集約することにより、システム全体の価格を下
げることが可能となる。音声回路のALUはLPUをサ
ポートするために高速でなければならない。この能力は
またマイクロプロセッサでも利用可能であって、音楽や
音に関する多くの波形を生成することが出来るのでLP
C音声指向モデルが生成出来る以上の効果が期待でき
る。
【0067】合成器はまた、マイクロプロセッサと密接
に結合されることにより、柔軟性を得ている。標準LP
C励起機能以外に、ソフトウェアで計算された励起機能
を設計し提供することも可能となる。従って、CELP
(コード化され励起された線形予測符号化)およびその
他のLPCに対する強化で、より高速のビット速度を要
求するものも組み込むことが出来、より高い品質を得ら
れる。さらに、LPCを符号化する際に非常な柔軟性が
実現できて、個別の応用分野が要求する、品質およびデ
ータ速度に詳細に適合できる。
【0068】提案された命令セットを以下に記述する。
提出されたソースコード命令形式は: [<ラベル>]^<演算コード> ニューモニック>^[<被演算子>]^・・・[<コメ
ント>] フィールドは:6文字任意ラベルフィールド、6文字演
算コードフィールド、演算コードに依存した被演算子フ
ィールド、そして任意コメントフィールドである。各々
のフィールドはひとつまたは複数のタブ(^)またはス
ペースで分離されている。
【0069】ABAAC(BをAに加算)は、Bレジス
タ62の内容をAレジスタ60の内容に加算し、その結
果をAレジスタ60に格納する。ABAAC命令の構文
は:構文:[<ラベル>]^ABAAC^[<コメント
>]である。ALUの8番ビットの中にキャリアが存在
すると、状態フラグは " 1" である;そうでなければ”
0”である。加算は数学的モード(EXTSGまたはI
NTGR)に関係なく、Bレジスタ62とAレジスタ6
0の全ての14ビットの符号無し加算として実行され
る。
【0070】ACAAC(定数をAレジスタに加算)
は、被演算子が特定する12ビット定数を、Aレジスタ
60の内容に加算しその結果をAレジスタ60に格納す
る。ACAAC命令の構文は:構文:[<ラベル>]^
ACAAC^<定数12>^・・・[<コメント>]で
ある。ALUの8番ビットの中にキャリアが存在する
と、状態フラグは " 1 "である;そうでなければ " 0 "
である。加算の結果は数学的モードに依存する。かりに
プロセッサが整数モード(INTGR)とすると、加算
は12ビットの符号無し数と14ビットの符号無し数と
の加算となる。プロセサが拡張符号モード(EXTS
G)の場合は、12ビット定数は加算の前に14ビット
の2の補数に対して符号拡張される。この命令はテーブ
ル指標がAレジスタ60の中に置かれている場合に有用
である。テーブルの基本アドレスをこの命令を用いて指
標に加算し、必要なテーブル内容をフェッチすることに
より比較検索が実施される。
【0071】AGEC(Aレジスタが定数に等しいか大
きい)はAレジスタ60の内容の下位8ビットと、被演
算子で特定する定数の下位8ビットとを比較する。Aレ
ジスタ60の下位8ビットの内容が定数より大きい場合
は状態フラグ56をセットする。構文は:構文:[<ラ
ベル>]^AGEC^<CONST8>^・・・[<コ
メント>]。Aレジスタ60の下位8ビットが8ビット
定数より大きいか等しいときには、状態フラグは " 1 "
に等しい;そうでない場合は " 0 "。比較は常に符号を
考慮しない形で実施される、すなわちFFはFEより大
きい。Aレジスタ60の下位8ビットのみが8ビット定
数値と比較される。Aレジスタ60の上位6ビットは考
慮されない、従って結果は数学的モード(EXTSGま
たはINTGR)には関係しない。
【0072】AMAAC(記憶装置内容をAレジスタに
加算)は、Xレジスタで指定されるRAMアドレスの内
容を、Aレジスタに加算しその結果をAレジスタに格納
する。構文は:構文:[<ラベル>]^AMAAC^・
・・[<コメント>]である。状態フラグ:ALUの8
ビット目に桁上がりがある場合は1;それ以外は0。使
用される記憶領域の最重要ビットがセットされたとき
は、加算結果は数学的モード(EXTSGまたはINT
GR)に依存する。8ビット目に桁上がりがある場合は
常に状態フラグをセットする。この命令はふたつの値の
合計を求めたいときに使用される。
【0073】ANDCM(記憶装置の内容と定数との論
理積)は、Xレジスタ80が指定する記憶装置アドレス
の内容と8ビット定数とのビット毎のANDを実行し、
その結果を、Xレジスタ80が指定する記憶装置アドレ
ス位置に格納する。構文:[<ラベル>]^ANDCM
^<CONST8>^・・・[<コメント>]。状態フ
ラグは常に " 1 "にセットされる。演算はRAM位置の
下位8ビットの数学的モード(EXTSGまたはINT
GR)とは無関係に実行される;それ以外のビットは影
響されない。この命令は、RAM内の一つまたは複数の
ビットをゼロとしたいときに使用される。
【0074】ANEC(Aが定数に等しくない)は、A
レジスタ60の下位8ビットを被演算子が指定する定数
と比較し、Aレジスタの下位8ビットが8ビット被演算
子と等しくないときに、状態フラグ56をセットする。
構文:[<ラベル>]^ANEC^<CONST8>^
・・・[<コメント>]。状態フラグはAレジスタの下
位8ビットが8ビット被演算子に等しくない場合は1;
これらが等しい場合は0である。Aレジスタ60の下位
8ビットのみが8ビット定数値と比較される。この命令
は数学的モード(EXTSGまたはINTGR)とは無
関係である。
【0075】AXCA(Aかける定数)は、Aレジスタ
60の内容と被演算子とをかけ算し、結果(7ビット右
シフト)をAレジスタ60に残す。構文:[<ラベル
>]^AXCA^<CONST8>^・・・[<コメン
ト>]。状態フラグ:常に1。演算はAレジスタの全1
4ビットの2の補数および8ビット定数の数学的モード
(EXSTGまたはINTGR)には関係なく実施され
る。結果は7ビット右シフトされたものとなるので、2
1ビット中の上位14ビットが次の演算で利用可能であ
る。
【0076】AXMA(Aかける記憶装置内容)は、A
レジスタ60の内容とXレジスタ80でアドレス指定さ
れる記憶装置のロケーションの定数の下位8ビットとを
かけ算し、結果(7ビット右シフト)をAレジスタ60
に残す。構文:[<ラベル>]^AXMA^・・・[<
コメント>]。状態フラグ:常に1。演算はAレジスタ
の全14ビットの2の補数および、記憶装置から読み込
まれた8ビット定数の数学的モード(EXTSGまたは
INTGR)には関係なく実施される。結果は7ビット
右シフトされたものとなるので、21ビット中の上位1
4ビットが次の演算で利用可能である。
【0077】AXTM(Aかけるタイマ)は、Aレジス
タ60の内容とタイマレジスタ68とをかけ算し、結果
(7ビット右シフト)をAレジスタ60に残す。構文:
[<ラベル>]^AXTM^・・・[<コメント>]。
状態フラグ:常に1。演算はAレジスタの全14ビット
の2の補数および、タイマレジスタ68の8ビット値の
数学的モード(EXTSG/INTGR)には関係なく
実施される。結果は7ビット右シフトされたものとなる
ので、21ビット中の上位14ビットが次の演算で利用
可能である。
【0078】BR(分岐)は、プログラム計数器に、1
がセットされた被演算子で指定されたアドレスをロード
し、このアドレスから処理を実行する。状態フラグが0
にセットされると、BR命令に続く命令を実行する。構
文:[<ラベル>]^BR^<ADDR13>^・・・
[<コメント>]。状態ビット:常に1。分岐命令は条
件つき命令である。分岐命令が、状態フラグを常に高と
設定する命令に引き続いて使用される時は、分岐はあた
かも無条件分岐の様に見える。状態フラグに影響を与え
る命令の後ろで無条件分岐を実行する際は、分岐命令を
繰り返す。
【0079】BRA(常にAレジスタ内のアドレスに分
岐)は、プログラム計数器に、Aレジスタ内に含まれる
14ビットアドレスをロードし、このアドレスから処理
を実行する。構文:[<ラベル>]^BRA^・・・
[<コメント>]。状態ビット:常に1。この命令はサ
ブルーチンアドレスがテーブルに置かれている場合に有
用である。テーブルの基本アドレスを指標に加算し、テ
ーブル内に格納されているアドレスをAレジスタに取り
込む事が出来る。この分岐命令は無条件命令である。分
岐命令は状態レジスタの値の如何に係わらず常に実行さ
れる。拡張符号モードはこの命令の動作には影響を与え
ないが、これはその他の多くの命令動作に影響を与え、
Aレジスタに値を転送する為に使用されるほとんどの命
令は影響される。注意が必要なのは、BRA命令の後で
続いて使用されるAレジスタへの値転送を行う際に、符
号拡張子が無効となる点である、これはその値が転送中
に変更され予期せぬ結果が得られる可能性があるためで
ある。
【0080】CALL(サブルーチン呼び出し)もしも
状態フラグが1であれば、プログラム計数器の値をスタ
ックに押しだし、プログラム計数器には被演算子で特定
されるアドレスがロードされる。実行はそのアドレスか
ら開始される。状態フラグが0の場合は、CALL命令
に続く命令が実行される。構文:[<ラベル>]^CA
LL^<ADDR12>^・・・[<コメント>]。状
態フラグ:常に1。プログラム計数器スタック94は、
三レベルの深さまでアドレスを格納できる。アドレスは
CALL命令が発生するか、ハードウェア割り込みが実
行されるといつでもスタック94上に押し上げられる。
アドレスがスタックに三レベル以上押し上げられると、
スタックに押し上げられた最後の三つのアドレスが残
り、それ依然のアドレスは失われる。CALL命令は条
件付き命令である。CALLが状態フラグを常に高とし
て残す命令に続いて使用されるときには、これはあたか
も無条件命令の様に見なせる。CALLアドレスは12
ビットなので、サブルーチンはROMの4Kバイト未満
の場所に置かれていなければいけない。BR命令は13
ビットのアドレスを有していたので、ROMの8Kバイ
ト未満の場所へ分岐可能である。従って、サブルーチン
は下位4Kバイトの部分にエントリー点を持ち、そこか
ら高位4K部分に直接分岐するようにすれば、ROMの
次の4K部分に配置することもできる。
【0081】CLA(Aレジスタ消去)は、Aレジスタ
の内容を0にセットする。構文:[<ラベル>]^CL
A^・・・[<コメント>]。状態フラグ:常に1。
【0082】CLB(Bレジスタ消去)は、Bレジスタ
の内容を0にセットする。構文:[<ラベル>]^CL
B^・・・[<コメント>]。状態フラグ:常に1。こ
の命令はBレジスタを初期化するために用いられる。
【0083】CLX(Xレジスタ消去)は、Xレジスタ
の内容を0にセットする。構文:[<ラベル>]^CL
X^・・・[<コメント>]。状態フラグ:常に1。こ
の命令はXレジスタを初期化するために用いられる。
【0084】DECMN(記憶装置内容減数)Xレジス
タで指定される8ビットRAMロケーションの内容を減
数する。8ビット全てが零の時は、これらは1にセット
され状態フラグもセットされる。そうでない場合は、こ
れらは単に減数されるだけで状態フラグはクリアされ
る。DECMN命令は#OFFをRAMの値に加算して
いるので、この命令が12ビットRAMに対して使用さ
れると、下位8ビットが減数され上位4ビットは下位8
ビットから桁上がりがあれば必ず更新される。構文:
[<ラベル>]^DECMN^・・・[<コメント
>]。状態フラグ:下位8ビットがすべてゼロからすべ
て1に変化したときに1;それ以外の場合0。
【0085】DECXM(Xレジスタ減数)Xレジスタ
80の内容を減数する。Xレジスタ80の内容が00の
時は、FFにセットされ状態フラグも1にセットされ
る。そうでない場合は、Xレジスタ80は減数され、状
態フラグはクリアされる。構文:[<ラベル>]^DE
CXN^・・・[<コメント>]。状態フラグ:Xレジ
スタが00からFFに変化したときに1;それ以外の場
合0。
【0086】EXTSG(拡張符号モード)は音声回路
を拡張符号モードに変更する。長さが14ビット以下の
全てのデータは、AおよびBレジスタに加算されたり、
引算されたりまたは転送される際に符号拡張される。構
文:[<ラベル>]^EXTSG^・・・[<コメント
>]。状態フラグ:常に1。符号拡張とは、データの最
上位ビットがデータの13番目のビットから最上位ビッ
トまで複写されることを意味している。例えば、12ビ
ットRAMロケーションではその最上位ビットは11で
ある。拡張符号モードでは、データがRAMロケーショ
ンからAレジスタ60に転送される際に、11番目のビ
ットが12および13番目のビットに複写される。この
モードは8ビットより大きな値に対して、符号付き数値
演算が施されなければならないときに有益である。
【0087】GET(ROM/RAM1からのデータ取
り込み)は、内部ROM、外部ROM(TSP60C1
8)、または内部RAMからデータの1から8ビットを
並列/直列変換レジスタ経由でAレジスタに転送する。
構文:[<ラベル>]^GET^<N>^・・・[<コ
メント>]。データのNビットが並列/直列変換レジス
タの最下位ビットから、Aレジスタの最下位ビットにシ
フトされる。これはAレジスタ内でのビット順序を、並
列/直列変換レジスタ内の順序と反転させる。並列/直
列変換レジスタ内のビットより多くのビットが必要な場
合は、ROMまたはRAMから追加バイトが取り込まれ
る。状態フラグ:並列/直列変換レジスタバッファが空
で次のGET命令をロードする必要がある場合は1;そ
うでない場合は0である。データは並列/直列変換レジ
スタの最下位ビットからAレジスタの最下位ビットにシ
フトして移されるので、その結果Aレジスタに転送され
るデータのいずれの単一バイトもROMに格納されてい
る順番からビット反転される。並列/直列変換レジスタ
内ですぐに利用できるものより多くのビットが必要な場
合は、次のデータバイトが並列/直列変換レジスタにロ
ードされ、残りのビットがGET命令を満足するように
レジスタに転送される。並列/直列変換レジスタがRO
Mから再ロードされると、GET命令に対するアドレス
ポインタであるSARが、必要に応じて自動更新され
る。並列/直列変換レジスタがRAMから再ロードされ
る時は、Xレジスタがアドレスポインタであって、これ
は自動更新されない。GET命令の使用に先立って、G
ET計数器、並列/直列変換レジスタ、およびモードレ
ジスタが初期化されなければならない。初期化はTAM
ODE命令およびLUAPS命令をこの順序で使用して
実施される。RAMからGET命令を使用する場合は、
LUAPS命令の後で実際のGETを実行する前に、ダ
ミーGET 8命令が実行されなければならない。GE
T命令で取り込まれるデータ源は、外部ROMまたは内
部RAMいずれにあってもかまわない。TAMODE命
令は、データ源を制御するために使用される。外部RO
Mからのデータを取り込むために使用される際には、G
ET命令は同時にはデータの4ビット以上を取り込むこ
とは出来ない。
【0088】IAC(Aレジスタ更新)は、Aレジスタ
の内容を1だけ更新する。構文:[<ラベル>]^IA
C^・・・[<コメント>]。状態フラグ:Aレジスタ
の下位8ビットがFFから00に変化した時に1;それ
以外は0。この命令はAレジスタの全14ビットを更新
するが、下位8ビットのみが状態フラグ判定に使用され
る。
【0089】IBC(Bレジスタ更新)は、Bレジスタ
の内容を1だけ更新する。構文:[<ラベル>]^IB
C^・・・[<コメント>]。状態フラグ:Bレジスタ
の下位8ビットがFFから00に変化した時に1;それ
以外は0。この命令はBレジスタの全14ビットを更新
するが、下位8ビットのみが状態フラグ判定に使用され
る。
【0090】INCMC(記憶装置更新)は、Xレジス
タで指定されたRAMロケーションの内容を更新する。
下位8ビットがすべて1の場合は、これらは全てゼロに
クリアされて状態フラグが1にセットされる。構文:
[<ラベル>]^INCMC^・・・[<コメント
>]。状態フラグ:記憶装置の下位8ビットが#FFか
ら00に変化した時に1;それ以外は0。
【0091】INTGR(整数モード)は、音声回路を
整数モードに変更する。構文:[<ラベル>]^INT
GR^・・・[<コメント>]。ALU54の上位ビッ
トがゼロで満たされ、後演算に備える。後演算でのデー
タ転送および数学演算は符号拡張されていない。状態フ
ラグ:常に1。この命令はAまたはBレジスタに転送、
加算、減算されるRAM、ポート、Xレジスタ、または
タイマからの全てのデータに影響する。これは正の数、
または8ビットまたはそれ以下の数に対してのみ使用さ
れる。
【0092】IXC(Xレジスタ更新)は、Xレジスタ
80の内容を1だけ更新する。構文:[<ラベル>]^
IXC^・・・[<コメント>]。状態フラグ:Xレジ
スタ80の内容が#FFから00に変化した時に1;そ
れ以外は0。状態フラグはIXC命令が実行される直前
に、Xレジスタ80の内容が#FFの場合のみセットさ
れる。この場合状態フラグ56がセットされてXレジス
タの値は0となる。
【0093】LUAA(Aレジスタ比較検索)はAレジ
スタ60の内容をAレジスタ60でアドレス指定したR
OMの内容と置き換える。拡張符号モードでは、取り込
まれた値は、14ビットまで符号拡張される。構文:
[<ラベル>]^LUAA^・・・[<コメント>]。
状態フラグ:常に1。拡張符号モード時(EXTSG)
は、Aレジスタにロードされる値は符号拡張されてい
る。これは二つの領域に問題を生じ得る:目的アドレス
をAレジスタにロードする際、もしも7ビット目が高で
あるとアドレスが変更されてしまい、LUAA命令で不
正なデータがロードされてしまう;また取り込まれたデ
ータが符号拡張されている。これらの問題は、Aレジス
タにロードする前に、プロセッサを整数モードとしてお
けば回避できる。
【0094】STOFF(プロセッサをオフモードに設
定)は、プロセッサを低電力モードとする。クロックは
停止され、I/Oポートは高インピーダンス状態とされ
る。構文:[<ラベル>]^STOFF^・・・[<コ
メント>]。プロセッサを再起動するためには、INI
Tピンに信号の立ち上がり入力が必要である。レジスタ
の値は保持されないが、RAMの値は保持される。
【0095】SMAAN(Aレジスタから記憶装置の内
容を減算)は、Xレジスタ80でアドレス指定されたR
AMの内容を、Aレジスタ60の内容から減算し、その
結果をAレジスタ60に格納する。Aレジスタ60の下
位8ビットの初期値がRAMの下位8ビットの値より小
さい場合、状態ビットは1にセットされる;それ以外の
場合は状態ビットは0にクリアされる。プロセッサが拡
張符号モードにいる場合は、記憶装置に格納されている
値は、減算に先だって14ビット値に符号拡張される。
構文:[<ラベル>]^SMAAN^・・・[<コメン
ト>]。使用されている記憶装置の最上位ビットがセッ
トされているときは、減算結果は数学的モード(EXT
SGまたはINTGR)に依存する。8ビット目から桁
降ろしが生じる場合は全ての場合、状態フラグがセット
される。この命令は二つの値の差が必要なときに使用さ
れる。これはXレジスタで指し示された記憶装置の内容
をAレジスタから減算する。
【0096】TAB(AレジスタをBレジスタに転送)
は、Aレジスタ60の内容をBレジスタ62に複写す
る。構文:[<ラベル>]^TAB^・・・[<コメン
ト>]。状態フラグ:常に1。
【0097】TAM(Aレジスタを記憶装置に転送)
は、Aレジスタ60の内容をXレジスタ80でアドレス
指定された記憶装置のロケーションに複写する。記憶装
置ロケーションはAレジスタ60の内容を完全に保持す
るには小さすぎるので、最上位ビットは転送中に失われ
る。構文:[<ラベル>]^TAM^・・・[<コメン
ト>]。状態フラグ:常に1。
【0098】TAMD(Aレジスタを記憶装置に直接転
送)は、Aレジスタ60の内容を被演算子でアドレス指
定された記憶装置のロケーションに複写する。記憶装置
ロケーションはAレジスタ60の内容を完全に保持する
には小さすぎるので、最上位ビットは転送中に失われ
る。構文:[<ラベル>]^TAMD^<CONST8
>^・・・[<コメント>]。状態フラグ:常に1。
【0099】TAMIX(Aレジスタを記憶装置に転送
しXレジスタを更新する)は、Aレジスタ60の内容を
Xレジスタ80でアドレス指定された記憶装置のロケー
ションに複写し、Xレジスタ80を更新する。記憶装置
ロケーションはAレジスタ60の内容を完全に保持する
には小さすぎるので、最上位ビットは転送中に失われ
る。構文:[<ラベル>]^TAMIX^・・・[<コ
メント>]。状態フラグ:常に1。
【0100】TAMODE(Aレジスタをモードレジス
タに転送)は、Aレジスタ60の下位8ビットをモード
レジスタ72に複写する。構文:[<ラベル>]^TA
MODE^・・・[<コメント>]。状態フラグ:常に
1。
【0101】TAPSC(Aレジスタをプリスケールレ
ジスタに転送)は、Aレジスタ60の下位8ビットをプ
リスケールレジスタに複写する。構文:[<ラベル>]
^TAPSC^・・・[<コメント>]。状態フラグ:
常に1。プリスケールレジスタ70はタイマクロック
を、この命令でセットされた値プラス1で分周する。プ
リスケール回路の出力はタイマレジスタ用のクロックと
して使用される。
【0102】TASYN(Aレジスタを合成器レジスタ
に転送)は、Aレジスタ60の14ビットを音声プロセ
ッサレジスタに複写する。特定されるレジスタおよび結
果として生じる制御機能は動作モードに依存する:LP
C(12ビット、音調値をロードする。Aの最上位ビッ
トおよび最下位ビットはゼロにセットされなければなら
ない。)、PCM/LPC(14ビットLPC励起値を
ロードする。)、そしてPCM(12ビットD/Aレジ
スタをロードする。)もしもこれらのいずれもが不活性
状態の時は、値は音調レジスタへ入る。構文:[<ラベ
ル>]^TASYN^・・・[<コメント>]。状態フ
ラグ:常に1。TASYNはAレジスタの内容の14ビ
ットをMODEレジスタの内容に応じて、下記の行き先
に複写する。
【表14】
【0103】TATM(Aレジスタをタイマレジスタに
転送)はAレジスタの下位8ビットをタイマレジスタに
複写する。構文:[<ラベル>]^TATM^・・・
[<コメント>]。状態フラグ:常に1。
【0104】TAX(AレジスタをXレジスタに転送)
は、Aレジスタ60の下位8ビツトをXレジスタ80に
複写する。構文:[<ラベル>]^TAX^・・・[<
コメント>]。状態フラグ:常に1。
【0105】TBM(Bレジスタを記憶装置に転送)
は、Bレジスタ62の内容をXレジスタ80でアドレス
指定された記憶装置のロケーションに複写する。記憶装
置ロケーションはBレジスタ62の内容を完全に保持す
るには小さすぎるので、最上位ビットは転送中に失われ
る。構文:[<ラベル>]^TBM^・・・[<コメン
ト>]。状態フラグ:常に1。
【0106】TCA(定数をAレジスタに転送)は、被
演算子で指定された8ビット定数をAレジスタ60に複
写する。拡張符号モード時は、8ビット値はAレジスタ
60内の14ビット2の補数に符号拡張されている。構
文:[<ラベル>]^TCA^<CONST8>・・・
[<コメント>]。状態フラグ:常に1。
【0107】TCX(定数をXレジスタに転送)は、被
演算子で指定された8ビット定数をXレジスタ80に複
写する。構文:[<ラベル>]^TCX^<CONST
8>・・・[<コメント>]。状態フラグ:常に1。
【0108】TMA(記憶装置の内容をAレジスタに転
送)は、Xレジスタ80でアドレス指定された記憶装置
の内容をAレジスタ60に複写する。拡張符号モード時
は、RAMから取り込まれた値はAレジスタ60内の1
4ビット2の補数に符号拡張されている。構文:[<ラ
ベル>]^TMA^<CONST8>・・・[<コメン
ト>]。状態フラグ:常に1。
【0109】TMAD(記憶装置の内容をAレジスタに
直接転送)は、被演算子でアドレス指定された記憶装置
の内容をAレジスタ60に複写する。拡張符号モード時
は、RAMから取り込まれた値はAレジスタ60内の1
4ビット2の補数に符号拡張されている。構文:[<ラ
ベル>]^TMAD^<CONST8>^・・・[<コ
メント>]。状態フラグ:常に1。
【0110】TMAIX(記憶装置の内容をAレジスタ
に転送しXレジスタを更新する)は、Xレジスタ80で
アドレス指定された記憶装置の内容をAレジスタ60に
複写し、Xレジスタ80を更新する。プロセッサが拡張
符号モード時は、RAMから取り込まれた値はAレジス
タ60内の14ビット2の補数に符号拡張されている。
構文:[<ラベル>]^TMAIX^<CONST8>
^・・・[<コメント>]。状態フラグ:常に1。
【0111】TMXD(記憶装置の内容を直接Xレジス
タに転送)は、被演算子でアドレス指定された記憶装置
の下位8ビットをXレジスタ80に複写する。構文:
[<ラベル>]^TMXD^<CONST8>^・・・
[<コメント>]。状態フラグ:常に1。
【0112】TRNDA(乱数をAレジスタに転送)
は、8ビット乱数をAレジスタ60に複写する。拡張符
号モードは、この命令の動作には影響しない。値は符号
拡張されない。構文:[<ラベル>]^TRNDA^・
・・[<コメント>]。状態フラグ:常に1。
【0113】TSTCA(定数とAレジスタとをテスト
する)は、被演算子で指定された定数と、Aレジスタ6
0の内容とを比較する。被演算子中のいずれかのビット
が高で、対応するAレジスタが低の時は、状態フラグ5
6はゼロにクリアされる。それ以外の場合は、状態フラ
グは1にセットされる。構文:[<ラベル>]^TST
CA^<CONST8>^・・・[<コメント>]。こ
の命令はAレジスタ60に格納されている値と、8ビッ
ト定数の値との論理積を取り、その結果が8ビット定数
に等しくない場合に状態フラグ56をセットする。Aレ
ジスタ内の値は変化しない。
【0114】TSTCM(定数と記憶装置内容とをテス
トする)は、被演算子で指定された定数と、Xレジスタ
80でアドレス指定された記憶装置ロケーションの内容
とを比較する。被演算子中のいずれかのビットが高で、
対応する記憶装置の内容が低の時は、状態フラグ56は
ゼロにクリアされる。それ以外の場合は、状態フラグは
1にセットされる。構文:[<ラベル>]^TSTCM
^<CONST8>^・・・[<コメント>]。この命
令はXレジスタで指定されたRAMロケーションに格納
されている値と、8ビット定数の値との論理積を取る。
記憶装置内の値は影響されない。
【0115】TTMA(タイマレジスタをAレジスタに
転送)は、タイマレジスタ68の内容をAレジスタ60
に複写する。拡張符号モード時は、タイマレジスタから
取り込まれた値はAレジスタ60内の14ビット2の補
数に符号拡張されている。構文:[<ラベル>]^TT
MA^<CONST8>^・・・[<コメント>]。状
態フラグ:常に1。
【0116】TXA(XレジスタをAレジスタに転送)
は、Xレジスタ80の内容をAレジスタ60に複写す
る。拡張符号モード時は、Xレジスタから取り込まれた
値はAレジスタ60内の14ビット2の補数に符号拡張
されている。構文:[<ラベル>]^TXA^<CON
ST8>^・・・[<コメント>]。状態フラグ:常に
1。
【0117】XBA(Bレジスタの内容をAレジスタと
交換する)は、Bレジスタ62の内容をAレジスタ60
と交換する。構文:[<ラベル>]^XBA^・・・
[<コメント>]。状態フラグ:常に1。
【0118】XBX(Bレジスタの内容をXレジスタと
交換する)は、Bレジスタ62の内容をXレジスタ60
と交換する。Bレジスタ62の上位6ビットはXレジス
タへの移動の際に省略される。拡張符号モード時は、X
レジスタ80から取り込まれた値はBレジスタ62内の
14ビット2の補数に符号拡張されている。構文:[<
ラベル>]^XBX^・・・[<コメント>]。状態フ
ラグ:常に1。
【0119】XGEC(Xレジスタが定数より大きいか
等しい)は、Xレジスタ80の内容と、被演算子で指定
された定数とを比較し、Xレジスタ80の内容が被演算
子の値より大きいか等しいときに状態フラグをセットす
る。構文:[<ラベル>]^XGEC^<CONST8
>^・・・[<コメント>]。状態フラグ:Xレジスタ
の内容が被演算子より大きいか等しいとき1;そうでな
い場合0。
【0120】LUAB(Bレジスタ比較検索)はBレジ
スタ62の内容をAレジスタ60でアドレス指定したR
OMの内容と置き換える。拡張符号モードでは、取り込
まれた値は、14ビットまで符号拡張される。構文:
[<ラベル>]^LUAB^・・・[<コメント>]。
状態フラグ:常に1。拡張符号モード時(EXTSG)
はBレジスタ62またはAレジスタ60にロードされる
値は符号拡張されている。これは二つの領域に問題を生
じ得る:目的アドレスをAレジスタ60にロードする
際、もしも7ビット目が高であるとアドレスが変更され
てしまい、LUAB命令で不正なデータがロードされて
しまう;またBレジスタ62に取り込まれたデータが符
号拡張されている。これらの問題は、Aレジスタにロー
ドする前に、プロセッサを整数モードとしておけば回避
できる。
【0121】LUAPS(Aレジスタ間接比較検索)は
Aレジスタ60の内容を音声アドレスレジスタ(SA
R)100に転送し、その結果のアドレスを音声データ
語の検索用に使用する。データ語は並列/直列変換バッ
ファに置かれ、SAR100は更新される。構文:[<
ラベル>]^LUAPS^・・・[<コメント>]。状
態フラグ:常に1。この命令はGET命令の実行に先立
って、並列/直列変換レジスタを初期化するために使用
される。これはデータが外部ROMまたは内部RAMの
いずれから来る場合でも使用されるべきである。これら
の場合SAR100を初期化する必要はないが、並列/
直列変換レジスタ76のビット計数器は初期化の必要が
ある。
【0122】ORCM(定数と記憶装置内容との論理
和)は、Xレジスタで指定されるRAMの定数と8ビッ
ト被演算子との論理和をとり、結果をRAMに格納す
る。構文:[<ラベル>]^ORCM^<CONST8
>^・・・[<コメント>]。状態フラグ:常に1。こ
の命令はRAM内の個別ビットを1にセットするために
使用できる。
【0123】RETI(割り込みからの復帰)は、Aレ
ジスタ60、Bレジスタ62、状態フラグ56およびX
レジスタ80の旧内容を割り込み格納ロケーションから
呼び戻し、スタック98の最上位の値をプログラム計数
器94に押しだし、割り込みがレベル1の場合は、プロ
グラム計数器94内の新しいアドレスから実行処理を復
帰する。割り込みがレベル2割り込みの場合は、状態フ
ラグ56、整数モードビット50およびプログラム計数
器94のみが呼び返される。もしもRETI命令が、複
数の可能化されている割り込みの中でしかも第一番目に
発生した割り込みで無いものに対して実行されると、ス
タック制御は混乱するであろう。モードレジスタ72は
セーブされず、割り込み中にリストアされる。割り込み
中にモードレジスタに対して行われた如何なる変更も、
RETI後に残っていて影響を与える。構文:[<ラベ
ル>]^RET^・・・[<コメント>]。状態フラ
グ:割り込み以前の値がリストアされる。RETN(サ
ブルーチンからの復帰)は、スタックの最上位置の値を
押しだし、新しいアドレスから処理を再会する。構文:
[<ラベル>]^RETN^・・・[<コメント>]。
状態フラグ:常に1。
【0124】SALA(Aレジスタを左シフト)は、A
レジスタ60を最上位ビット方向に1ビットシフトし、
最下位ビットに0を代入する。構文:[<ラベル>]^
SALA^・・・[<コメント>]。状態フラグ:Aの
7ビット目が実行前に1の時は1;もしもAの7ビット
目が実行前に0の場合は0。Aレジスタの13番目のビ
ットの外にシフトされたビットは失われる。結果は数学
的モード(EXTSGまたはINTGR)には依存しな
い。
【0125】SALA4(Aレジスタを4ビット左シフ
ト)は、Aレジスタ60を最上位ビット方向に4ビット
シフトし、下位側4ビットに0を代入する。構文:[<
ラベル>]^SALA4^・・・[<コメント>]。状
態フラグ:常に1。Aレジスタの10から13番目のビ
ットは失われる。結果は数学的モード(EXTSGまた
はINTGR)には依存しない。
【0126】SARA(Aレジスタを1ビット右シフ
ト)は、Aレジスタ60を最下位ビット方向に1ビット
シフトし、最上位ビットに元の値を代入する。構文:
[<ラベル>]^SARA^・・・[<コメント>]。
状態フラグ:常に1。Aレジスタの0番目のビットの外
にシフトされたビットは失われる。結果は数学的モード
(EXTSGまたはINTGR)には依存しない。
【0127】SBAAN(AレジスタからBレジスタを
減算)は、Bレジスタ62の内容を、レジスタ60の内
容から減算し、その結果をAレジスタ60に格納する。
減算がAレジスタ60の8ビット目からの桁借り操作を
必要とする場合は、状態フラグは1にセットされる;そ
れ以外の場合は状態フラグは0にクリアされる。構文:
[<ラベル>]^SBAAN^・・・[<コメント
>]。加算は数学的モード(EXTSGまたはINTG
R)に依存せずに、Bレジスタの全14ビットのAレジ
スタからの2つの補数加算として実行される。
【0128】SBR(短分岐)は、プログラム計数器の
下位7ビットを状態フラグが1にセットされた時に指定
される値で置き換え、処理をそのアドレスから継続す
る。それ以外の場合は、SBR命令の次の命令が実行さ
れる。構文:[<ラベル>]^SBR^<ADDR7>
・・・[<コメント>]。状態フラグ:常に1。短分岐
命令は条件付き命令である。常に状態フラグを高にセッ
トする命令に続いて短分岐命令が用いられると、短分岐
は無条件命令とみなすことができる。命令が取り込まれ
た時点で、プログラム計数器94は更新される。命令が
実行されたときの、プログラム計数器の値が80とする
と、被演算子が1のSBRをアドレス7Fに配置する
と、結果は81への分岐となる。XX7FまたはXXF
FでSBRが実行されると、状態はクリアされ(分岐は
起きない)それぞれ、XX80またはXX00に行く。
【0129】本発明を詳細に説明したが、種々の変更、
置き換えおよび修正を、添付の特許請求の範囲で定義さ
れた本発明の精神および範囲から逸脱する事なく実現で
きることは理解されよう。以上の説明に関して更に以下
の項を開示する。
【0130】(1) 音声回路であって:音声合成機能
を実行する回路;マイクロコンピュータ機能を実行する
回路;および前記音声合成およびマイクロコンピュータ
機能の間に、単一の算術論理ユニットを配置するための
回路とで構成された、前記音声回路。
【0131】(2) 第1項記載の音声回路に於て、さ
らに前記音声合成回路と前記マイクロコンピュータ回路
との間に接続された単一データバスを有することを特徴
とする、前記音声回路。
【0132】(3) 第1項記載の音声回路に於て、前
記配置するための回路が命令サイクルを前記音声合成回
路と前記マイクロコンピュータ回路との間で交互に実行
させるための回路を有することを特徴とする、前記音声
回路。
【0133】(4) 第3項記載の音声回路に於て、前
記交互に実行させるための回路がさらに、前記音声回路
が音声発生中のみ命令サイクルを前記音声合成回路と前
記マイクロコンピュータ回路との間で交互に実行させ、
前記音声回路から音声が発生されていないときには前記
マイクロコンピュータ回路に対して全命令サイクルを割
り当てるための回路を有することを特徴とする、前記音
声回路。
【0134】(5) 第3項記載の音声回路に於て、前
記命令サイクルの各々が予め定められた個数の状態を有
することを特徴とする、前記音声回路。
【0135】(6) 第3項記載の音声回路に於て、前
記マイクロコンピュータに割り当てられた命令サイクル
の内のひとつまたはいくつかを、励起パルスデータのア
クセス用に割り当てるための、サイクル盗み取り回路を
有することを特徴とする、前記音声回路。
【0136】(7) 第1項記載の音声回路に於て、さ
らに前記バスに接続されたディジタル/アナログ変換回
路を有することを特徴とする、前記音声回路。
【0137】(8) 第1項記載の音声回路に於て、さ
らに予め定められた励起パルスに関連するデータを格納
するように動作可能な記憶装置を有することを特徴とす
る、前記音声回路。
【0138】(9) 第8項記載の音声回路に於て、前
記励起パルスデータが励起パルスに関連する超サンプリ
ングデータを含むことを有することを特徴とする、前記
音声回路。
【0139】(10) 第8項記載の音声回路に於て、
前記記憶装置が複数の励起パルスに対応するデータを格
納するように動作可能であることを有することを特徴と
する、前記音声回路。
【0140】(11) 第1項記載の音声回路に於て、
さらに前記マイクロコンピュータ回路と前記合成回路と
を、外部ROMに結合するためのインタフェース回路を
有することを特徴とする、前記音声回路。
【0141】(12) 第11項記載の音声回路に於
て、前記インタフェース回路がひとつまたは複数のポー
トに結合された記憶装置を含むことを特徴とする、前記
音声回路。
【0142】(13) 第1項記載の音声回路に於て、
前記音声合成回路が線形予測符号化回路を有することを
特徴とする、前記音声回路。
【0143】(14) 第13項記載の音声回路に於
て、前記合成回路がさらにFIRフィルタを有すること
を特徴とする、前記音声回路。
【0144】(15) 音声回路であって:一本のデー
タバス;データバスに結合された単一の算術論理ユニッ
ト;プログラム命令を格納するための、データバスに結
合された記憶装置;およびプログラム命令にアクセスす
るためにプログラム記憶装置のアドレス指定を行うため
のプログラム計数器とで構成されている前記音声回路。
【0145】(16) 第15項記載の音声回路に於
て、前記プログラム記憶装置がさらに励起パルスデータ
を格納するようにも動作可能であることを特徴とする、
前記音声回路。
【0146】(17) 第16項記載の音声回路に於
て、さらに励起パルスデータにアクセスするためにプロ
グラム記憶装置のアドレス指定を行うための音調計数器
を有することを特徴とする、前記音声回路。
【0147】(18) 第16項記載の音声回路に於
て、前記プログラム記憶装置がさらに音声データを格納
するようにも動作可能であることを特徴とする、前記音
声回路。
【0148】(19) 第18項記載の音声回路に於
て、さらに音声データにアクセスするために前記プログ
ラム記憶装置のアドレス指定を行う様に動作する音声ア
ドレスレジスタを有することを特徴とする、前記音声回
路。
【0149】(20) 第15項記載の音声回路に於
て、さらに前記プログラム計数器からのアドレスを格納
するためのプログラム計数器に結合された多重レベルス
タックを有することを特徴とする、前記音声回路。
【0150】(21) 音声合成およびマイクロコンピ
ュータ機能を実行するための集積回路であって:音声合
成器の機能を実行するための回路;マイクロコンピュー
タ機能を実行するための回路;ひとつの算術演算論理ユ
ニット;そして前記単一算術演算論理ユニットを前記音
声合成器およびマイクロコンピュータ機能の間に割り当
てるための回路とで構成されている、前記集積回路。
【0151】(22) 第21項記載の音声回路に於
て、さらに前記音声合成回路と前記マイクロコンピュー
タ回路との間に接続された単一データバスを有すること
を特徴とする、前記音声回路。
【0152】(23) 第21項記載の音声回路に於
て、前記割り当てるための回路が命令サイクルを前記音
声合成回路と前記マイクロコンピュータ回路との間で交
互に実行させるための回路を有することを特徴とする、
前記音声回路。
【0153】(24) 第23項記載の音声回路に於
て、前記交互に実行させるための回路がさらに、前記音
声回路が音声発生中のみ命令サイクルを前記音声合成回
路と前記マイクロコンピュータ回路との間で交互に実行
させ、前記音声回路から音声が発生されていないときに
は前記マイクロコンピュータ回路に対して全命令サイク
ルを割り当てるための回路を有することを特徴とする、
前記音声回路。
【0154】(25) 第23項記載の音声回路に於
て、前記命令サイクルの各々が予め定められた個数の状
態を有することを特徴とする、前記音声回路。
【0155】(26) 合成された音声を発生させるた
めの方法であって:音声合成機能を実行し;マイクロコ
ンピュータ機能を実行し;そして単一の算術演算論理ユ
ニットを前記合成器とマイクロコンピュータ機能とのあ
いだで割り振る、という手順で構成されている前記方
法。
【0156】(27) 第26項記載の方法に於て、さ
らに前記音声合成回路と前記マイクロコンピュータ機能
との間に単一データバスを配置する手順を有することを
特徴とする、前記方法。
【0157】(28) 第26項記載の方法に於て、前
記割当を行うための手順が命令サイクルを前記マイクロ
コンピュータと前記音声合成機能との間で交互に実行さ
せるための手順を有することを特徴とする、前記方法。
【0158】(29) 第28項記載の方法に於て、前
記交互に割り当てるための手順が予め定められた個数の
状態を各々の命令に提供する手順を有することを特徴と
する、前記方法。
【0159】(30) 第26項記載の方法に於て、前
記音声合成機能を実行するための手順が、励起パルスデ
ータを発生させる手順を有することを特徴とする、前記
方法。
【0160】(31) 第30項記載の方法に於て、前
記発生手順が、前記励起パルスデータを記憶装置からア
クセスする手順を有することを特徴とする、前記方法。
【0161】(32) 第31項記載の方法に於て、前
記アクセスする手順が前記記憶装置にアクセスするため
に、前記マイクロコンピュータ機能に割り当てられた命
令サイクルからサイクルを盗むための手順を有すること
を特徴とする、前記方法。
【0162】(33) 第30項記載の方法に於て、前
記発生させるための手順が励起パルスデータを計算する
手順を有することを特徴とする、前記方法。
【0163】(34) 音声回路10はマイクロコンピ
ュータおよび音声合成器機能12,14を有する。マイ
クロコンピュータおよび音声合成器機能12,14は、
14ビットデータバス48および算術論理演算ユニット
54を共有する。励起信号はROMの中に、超過サンプ
リングデータとともに格納されている;必要であれば、
複数個の励起信号をROMの中に格納できる。これとは
別に、励起信号をROMに格納しないで、ソフトウェア
的に発生させることも出来る。
【図面の簡単な説明】
【図1】本発明に基づく音声回路の機能ブロック図
【図2】LPC声道モデルを示す図
【図3】刺激信号を示す図
【図4】マイクロコンピュータと音声合成機能との間の
指令サイクルの配置を示す、タイミング図
【図5】音声回路のピン出力図
【図6】音声回路のブロック図
【図7】音声回路内で使用されるRAM記憶装置の代表
例を示す図。
【符号の説明】
10 音声回路 12 マイクロコンピュータ 14 音声合成器 48 データバス 54 算術論理演算ユニット 60 Aレジスタ 62 Bレジスタ 80 Xレジスタ 94 プログラム計数器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフレイ アール.トーマス アメリカ合衆国テキサス州デンソン,ウエ スト ウエイ 2812 (72)発明者 マイクル エィチ.ハイト アメリカ合衆国テキサス州ポッツボロ,ボ ックス 224シー,ルート 1

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 音声回路であって:音声合成機能を実行
    する回路:マイクロコンピュータ機能を実行する回路;
    および前記音声合成およびマイクロコンピュータ機能の
    間に、単一の算術論理ユニットを配置するための回路と
    で構成された、前記音声回路。
  2. 【請求項2】 合成された音声を発生させるための方法
    であって:音声合成機能を実行し;マイクロコンピュー
    タ機能を実行し;そして単一の算術演算論理ユニットを
    前記合成器とマイクロコンピュータ機能とのあいだで割
    り振る、という手順で構成されている前記方法。
JP03100927A 1990-05-04 1991-05-02 音声合成装置 Expired - Fee Related JP3143488B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51804990A 1990-05-04 1990-05-04
US518049 1990-05-04

Publications (2)

Publication Number Publication Date
JPH064089A true JPH064089A (ja) 1994-01-14
JP3143488B2 JP3143488B2 (ja) 2001-03-07

Family

ID=24062324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03100927A Expired - Fee Related JP3143488B2 (ja) 1990-05-04 1991-05-02 音声合成装置

Country Status (1)

Country Link
JP (1) JP3143488B2 (ja)

Also Published As

Publication number Publication date
JP3143488B2 (ja) 2001-03-07

Similar Documents

Publication Publication Date Title
US5659466A (en) Monolithic PC audio circuit with enhanced digital wavetable audio synthesizer
JP3027970B2 (ja) デイジタル信号プロセツサメモリ管理ユニツトおよびその方法
US5675808A (en) Power control of circuit modules within an integrated circuit
US6047073A (en) Digital wavetable audio synthesizer with delay-based effects processing
US5668338A (en) Wavetable audio synthesizer with low frequency oscillators for tremolo and vibrato effects
JPH06308966A (ja) 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー
JP3047185B2 (ja) ディジタル音源装置、およびそれに用いられる外部メモリカートリッジ
EP0047175B2 (en) Speech synthesizer apparatus
Jaffe et al. An overview of the sound and music kits for the NeXT computer
US6064743A (en) Wavetable audio synthesizer with waveform volume control for eliminating zipper noise
US5850628A (en) Speech and sound synthesizers with connected memories and outputs
JPH07181969A (ja) コードセグメント置換装置及びそれを用いたリアルタイム信号処理システム並びにオーディオ処理システム
JP3143488B2 (ja) 音声合成装置
EP1267560B1 (en) Tone generator apparatus sharing parameters among channels
JPH10509544A (ja) モノリシックpcオーディオ回路
US4635211A (en) Speech synthesizer integrated circuit
JP2010522359A (ja) 電子楽器デジタルインターフェースハードウェア命令セット
US4627093A (en) One-chip LSI speech synthesizer
Schnell et al. Text-to-speech for low-resource systems
Chiu A single ALU speech synthesizer/ROM/microprocessor system
JPS5870296A (ja) 音を発する電子機器用の集積回路
JPS5870350A (ja) 音声合成機器用集積回路
JPS5872199A (ja) 音声合成集積回路
JPH07122796B2 (ja) 処理装置
KR0152302B1 (ko) 한국어 합성 장치

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081222

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees