SM5964的ADPCM語音合成實驗

[回到前頁]  

1、語音合成(Voice Synthesis)簡介

2、ADPCM語音合成技術簡介

3、SM5964的ADPCM語音合成技術簡介

4、SM5964的ADPCM語音合成實驗套件

5、SM5964語音合成實驗的ISP操作說明

6、SM5964語音合成實驗的DEMO

7、SM5964語音合成實驗套件購買說明

  所謂的語音合成 (Voice Synthesis) 就是使機器發出類似人類語
音的技術。早期在半導體技術不發達時,想要提供語音服務的方
法,大概就是透過類比式的放音方式,例如唱片、錄音帶,將事
先預錄起來的語音,利用機械式或電子式的開關將這些語音放出
,這種方式有一些缺點,比如語音品質的不穩定、語音分段不精
確或是語音播放裝置體積過大等缺點;等到個人電腦開始普及之
後,有一些廠商順勢開發出電腦式的語音合成方法,利用個人電
腦的高速運算及大容量儲存空間的特性,開發出一系列的語音合
成卡,目前市面上仍然還看的到,雖然使用個人電腦後,在語音
合成技術上改採數位的方式,語音合成的品質也非常好,不過電
腦的體積龐大,僅適合需要提供長時間語音合成的服務,如果對
於僅需要短時間、小片語的語音合成來說,這似乎不是一個很好
的方法,因此一些以半導體技術製造出來的單晶片語音合成IC便
因此而問世。

  早在十幾年前,當站長還在念研究所時,那時候在某個研究
案中,曾經因為需要使用到語音合成的技術,而搜尋過各大IC廠
商是否有人可以提供單晶片語音合成IC,很幸運的找到兩家廠商
:一家現在已經被華邦(Winbond)併購的 ISD公司,另一家就是沖
電氣 (OKI)公司,這兩家廠商所提供的單晶片語音合成 IC,的確
是可以解決短時間、小片語的語音合成需求,不過這兩家廠商所
使用的技術卻是不同的, ISD 公司所採用的是一種稱為直接類比
儲存的技術 (DAST),而 OKI 公司則是使用ADPCM語音合成的技
術,這兩類方式各有其優缺點,不過就語音合成品質來說,使用
 ADPCM 語音合成的技術,在語音播放長度的改變上其彈性度是
比較大的,只要改變其語音輸出時的取樣頻率 (Sampling Frequency)
 ,便可以輕易提高或降低語音合成的品質,這一點是使用 DAST 
技術所無法辦到的,在此順便介紹國內另外一家也是提供  DAST 
技術的公司:APLUS  (巨華積體電路公司),有興趣的網友可以自
行前往該公司網站Winbond (新唐)或是Aplus,參考有關使用DAST
技術的單晶片語音合成IC。

[回到上面]

  ADPCM(Adaptive Differential Pulse Code Modulation)語音合成技
術其實已經問世數十年,早期在還沒有出現一些所謂的低資料位
元率 (Low Data Bit Rate) 的語音壓縮技術時,ADPCM 技術的問世
,的確曾經帶給電信業或通訊界一點希望,因為那時候的有線通
訊或稱固網,為了想要將類比式電話的通訊標準改成數位式的通
訊標準,也著實進行了不少的創新,CCITT (ITU的前身)也陸續公
佈了一些針對電信、通訊所需的相關語音壓縮技術,而  ADPCM
就是其中一項,有興趣的網友可以自行前往 ITU 網站,查看語音
壓縮技術應用在電信、通訊的沿革,在此不多加敘述。

  ADPCM的語音壓縮技術,改善了DPCM (Differential Pulse Code 
Modulation)中的Slope Overload缺點,同時也增加語音壓縮率,以 4-
bit 的 ADPCM  編碼方式,可以提供從 2 倍 ( 8 - bit PCM)到 4倍 (16 -
bit PCM) 的可變語音壓縮率,語音輸出的取樣頻率可以從 4 Khz 到 
48Khz 以上,因此使用在語音合成上其彈性度是非常的高,只要改
變語音合成輸出時的取樣頻率  , 就可以輕易改變語音合成的播放
時間與品質,這是使用 ADPCM 的特點之一,因此早期不少的IC廠
商也曾經開發出不少的 ADPCM語音合成 IC,不過因為新的語音壓
縮技術問世,目前還在生產 ADPCM語音合成 IC的廠商應該是很少
了。

[回到上面]

  SM5964 是一顆完全相容於 Intel 8052 的單晶片,它具有64K-
Bytes的 Code Flash ROM與 1K-Bytes的SRAM及高達40Mhz的操作速
度與五個 Channel 的 PWM 功能,同時也都具有 ISP 的功能,而本
次實驗就是要利用 SM5964 的 Code Flash ROM 儲存ADPCM碼,將
SM5964 模擬成ADPCM Voice Synthesis IC。由本研究室獨自開發的
ADPCM 解碼程式 ( 使用8051組合語言,僅佔 0.2K-Bytes ),只需要
平均約 55個機週期 (Machine Cycle),就能夠將 4-bit 的 ADPCM
碼完全解碼成 8-bit到 14-bit的 PCM資料輸出 (取樣頻率=8Khz),即
使在標準 12Mhz 底下操作的 8051,依然可以提供高品質的語音合
成輸出。

  本研究室所提供的 SM5964 模擬成ADPCM Voice Synthesis IC的
特點如下:

(1)、使用者可以自行規劃語音合成輸出的PCM資料寬度,從8位元
  到14位元,因此配合適當的 DAC (Digital to Analog Converter)或
  是直接使用R-2R電阻網路(R-2R Ladder),就能夠提供語音合成
  的類比輸出。

(2)、使用者可以自行規劃語音合成輸出的取樣頻率,從4Khz9.6
  Khz
,語音合成播放時間也從32秒(取樣頻率=4Khz)到13.3秒(取
  樣頻率=9.6Khz)。  

(3)、使用者可以自行規劃語音資料播放時間的分段 ,分段的數目
  從 1段到 256段,同時配合分段位址輸入的控制,使用者可以
  任意播放所規劃的分段語音資料。

(4)、使用者可以自行規劃PCM資料輸出(高 8位元、低 8位元)的 I/O
  埠從 P0 P3 中任意挑選其中的兩個 I/O埠,作為PCM資料輸
  出。

(5)、使用者可以自行規劃語音資料分段位址輸入I/O埠,從P0P3
  
中任意挑選其中的一個I/O埠,作為語音分段位址的輸入。

(6)、使用者可以自行規劃語音播放控制輸入I/O埠,從P0P3中任
  意挑選其中的一個I/O埠,作為語音播放控制的輸入。

(7)、使用者可以自行將語音檔案下載到 SM5964的 Flash ROM之中
  ,完全數位式編碼轉換,透過 PC將Wave檔 (長度32秒,取樣
  頻率48Khz)經過再取樣 (Re-Sampling)及 ADPCM編碼後,再使
  用ISP的方式,將ADPCM碼與控制程式一起燒錄至 SM5964的
  Flash ROM之中。

(8)、以上所敘述的特點,均可透過本研究室所撰寫的Voice51 Host
  軟體,讓使用者自行在PC端操作設計,然後下載至 SM5964,
  使得 SM5964模擬成一顆獨特的 ADPCM Voice Synthesis IC。

(9)、使用者也可以改用本研究室所撰寫 ISP51 Host軟體,將自行開
  發的程式碼下載至 SM5964 中 ,此時的 SM5964 則成為一般的 
  8051單晶片。

[回到上面]

  本研究室所提供SM5964的ADPCM語音合成實驗套件,只含一
顆已經燒錄 ISP服務程式(定址在 FE00 到 FFFF,共佔用  0.5K-Bytes)
的SM5964、一片包含Voice51 Host與ISP51 Host軟體程式的光碟片、
相關技術
的文件與Voice51下載使用的參考電路圖 , 請注意:本套
不包含RS232轉換電路 (DS275、HIN232或MAX232)以及相關電路
板 (PCB) 與 DAC等元件、零件及 IC
,您可以使用麵包板或是自行
Layout PCB,然後參考本研究室所提供的接線電路圖從事 ADPCM
語音合成實驗。

  本研究室所提供SM5964的ADPCM語音合成實驗套件,主要是
利用PC的串列功能將您所規劃的語音合成 IC 的資料,透過串列埠 
(COM),然後再經過電壓轉換電路 (DS275、HIN232 或 MAX232 ),
最後連接至SM5964的RXD、TXD及GND,因此您的 PC必須至少要
擁有一個串列埠(COM)的存在,否則將無法使用下載的功能。

  本研究室所提供的PC端Voice51 Host下載程式,均可以在Win9x
、WinXP上執行,有關詳細的使用說明書以及參考接線電路圖,請
您自行下載:

(1)、Voice51 Host的使用說明 1 2 3 4 5 6

(2)、Voice51 Host的操作訊息說明 1 2 3

(3)、ISP服務程式操作說明 1 2

(4)、參考接線電路圖 1

(5)、Voice51 Host安裝程式 (Version 0.1) 1

  目前本研究室所提供 Voice51 Host下載程式,必須配合本研究
室所撰寫的 ISP服務程式,與原廠所提供的 ISP 服務程式並不相容
, 請勿使用原廠的 ISP服務程式,以避免產生其他未知的風險。

  本研究室所提供SM5964的ADPCM語音合成實驗,必須搭配適
當的晶體震盪器(Crystal),主要有 18.432Mhz及 22.1184Mhz兩種,如
果您需要使用特殊頻率的晶體震盪器,請來信詢問。

[回到上面]

  

  在您操作SM5964的ISP功能之前,先弄清楚一些定義,以避免
操作錯誤。首先,請您仔細研讀過 SM5964 的 Data Sheet,雖然 SM
5964相容於 Intel 8052,不過還是有一些暫存器(Register)的設定是不
同的,因此詳細研讀Data Sheet是成為RD工程師的第一步;接著再
研讀本研究室所撰寫的 Voice51 Host的使用說明、Voice51 Host的操
作訊息說明、ISP服務程式操作說明以及參考接線電路圖
, 如果您
已經都研讀過上述的文件後,您應該就具備了相關 ISP功能的基礎
認識 。您也可以參考原廠所撰寫的相關文件 ,這樣您就可以更加
了解SM5964的 ISP功能。

註:Voice51 Host 的使用說明 ,是描述執行在 PC端並提供ADPCM
  語音合成資料下載程式的操作說明。

註:ISP 服務程式操作說明 ,是描述燒錄在 SM5964內的ISP接收程
  式的操作說明。

[回到上面]

  底下為使用SM5964語音合成實驗的 DEMO,站長使用音樂「
給愛麗思」當作語音合成輸入時的Wave檔,而合成輸出的Wave檔
則只列出 814位元兩種,取樣頻率也只列出40009600Hz兩種,
這些合成輸出的Wave檔均未經過任何濾波處理過的PCM資料:

原始的Wave檔案

合成的Wave檔案

單聲道16位元4000Hz

單聲道  8位元4000Hz

單聲道16位元9600Hz

單聲道  8位元9600Hz

 

單聲道14位元4000Hz

 

單聲道14位元9600Hz

[回到上面]

  本研究室所提供SM5964的ADPCM語音合成實驗套件,只含一
顆已經燒錄 ISP服務程式(定址在 FE00 到 FFFF,共佔用  0.5K-Bytes)
的SM5964、一片包含Voice51 Host與ISP51 Host軟體程式的光碟片、
相關技術
的文件與Voice51下載使用的參考電路圖 , 請注意:本套
不包含RS232轉換電路 (DS275、HIN232或MAX232)以及相關電路
板 (PCB)與DAC等元件
,一套定價新台幣 NT$ 300元整 ,以上均不
含郵資,一次購買10套 (含)以上,打九折優待。

  來信時訂購時 ,請註明您的姓名 、郵寄地址、聯絡電話以及
所需套件數量,並註明您需要的 IC包裝是 40 Pin  PDIP  或是 44 Pin
PLCC、以及晶體震盪器的操作頻率是18.432Mhz或是 22.1184Mhz

本站長收到您的來信後會回信與您做確認的動作 , 另外付款方式
與郵寄方式說明如下:

(1)、採用普通掛號郵寄方式,郵資NT$ 50 元

  如果您是採用普通掛號郵寄方式 , 則您必須事先以 ATM 匯
款至本站長的郵局帳號 (銀行代碼700,帳號為        ),
然後將您匯款所使用的帳號後5碼E-Mail 方式告知本站長,經
本站長確認無誤後 ,馬上就將您所訂購的實驗套件以普通掛號郵
寄方式寄出 ,郵局所需處理的工作天為三到七天,視您所需要郵
寄地區而定。

註:3套(含)以上,每增加一套需再加收郵資NT$ 30元

(2)、採用郵局代收貨價郵件方式,郵資NT$ 100 元

  如果您是採用郵局代收貨價郵件方式,則您只需將訂單 Mail
至站長即可,並不需要事先匯款,不過請您確認您的住址是否有
人可以代收郵件,否則可能會被退件至郵局候領。您的訂單經本
站長確認無誤後,馬上就將您所訂購的實驗套件以郵局代收貨價
郵件方式寄出,郵局所需處理的工作天為三到七天,視您所需要
郵寄地區而定。 

訂單範例:

(1)、採用普通掛號郵寄方式

姓名:趙錢孫

地址:台北市100中正區子虛烏有路一段 1號

電話:0987-654-321

套件數量:2套

郵寄方式:普通掛號

IC包裝:40 Pin PDIP

晶體震盪器的操作頻率:18.432Mhz

以上所需匯款金額為 300X2+50 = NT$ 650整

(2)、採用郵局代收貨價郵件方式

姓名:趙錢孫

地址:台北市100中正區子虛烏有路一段 1號

電話:0987-654-321 (郵局規定要留)

套件數量:1套

郵寄方式:代收貨價

IC包裝:44 Pin PLCC

晶體震盪器的操作頻率:22.1184Mhz

以上所需代收付款金額為 300X1+100 = NT$ 400整

 

  以上如果您對於付款方式及付款金額,有任何疑問的話,歡
來信詢問,謝謝。

[回到上面]