《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > ISD4004系列器件語音拷貝系統的設計

ISD4004系列器件語音拷貝系統的設計

2008-07-17
作者:魯奇璞, 魏 豐

  摘 要: 介紹了ISD4004系列語音芯片" title="語音芯片">語音芯片,分析了芯片語音信息分段的內部形成機制及特征,提出了獲取內部地址的方法;在此基礎上采用地址拷貝法,開發設計出了語音拷貝系統,并給出了軟件設計、硬件設計和部分應用程序;最后通過測試驗證了系統的可行性。
  關鍵詞: ISD4004 語音拷貝 語音信息段 地址拷貝


1 ISD4004語音芯片介紹
  ISD系列語音芯片是Winbond公司推出的產品。該芯片采用多電平直接模擬存儲專利技術,聲音不需要A/D轉換和壓縮,模擬信號直接存儲在片內的閃爍存儲器中,沒有A/D 轉換誤差, 因此能夠真實、自然地再現語音、音樂及效果聲。避免了傳統錄音電路量化和壓縮造成的量化噪聲和金屬聲。
  ISD4004系列語音芯片的所有操作由微控制器控制,操作命令通過串行通信接口(SPI或Microwire)送入。錄音采樣頻率可為4.0Hz、5.3Hz、6.4Hz、8.0Hz,錄放時間可為8min、10min、12min、16min。采樣頻率越低,錄放時間越長,但音質則有所下降。片內信息存于閃爍存儲器中,可在斷電情況下保存100年,反復錄音10萬次(典型值)。器件工作電壓為3V,工作電流為15~25mA,維持電流為1μA。適用于移動電話機及其它便攜式電子產品中。
  本文以ISD4004-8MP(錄放時間為8min,PDIP封裝)語音芯片為例,介紹了語音拷貝系統的設計。
  (聲明:本系統僅供測試使用,未經許可復制他人音頻內容,造成的侵權行為,由使用者自己承擔;在使用本系統過程中造成的語音信息的失真、缺損及其它內容變更等責任,由使用者自己承擔。)
2 ISD4004語音拷貝系統的設計
  系統設計的整體思路是用錄制好語音的器件(母片)放音,待拷貝的器件(子片)錄音。其關鍵在于確保拷貝出的子片語音信息和母片完全一致,為此采用地址拷貝法。首先母片放音一遍,確認母片的語音信息地址,建立地址索引表;在母片放音的同時,子片同步進行錄制拷貝,即在子片相同的地址處進行相應語音信息的錄制。地址拷貝法確保了母片和子片的語音信息地址完全一致。下面分軟件和硬件電路兩部分進行介紹。
2.1 軟件的設計
2.1.1 母片語音地址的確定

  母片語音地址的確定是整個設計的重點。ISD器件的地址不是通常意義上的字節地址單元,而是內部存儲器的行地址。行是語音信息段的基本組成單位。以ISD4004-8MP為例,它內部的3840K閃爍存儲器單元共分為1600行,每個地址單元指向其中的一行,即有1600個行地址單元。ISD4004-8MP的錄放時間為八分鐘,采樣頻率為8kHz,因此它的每行語音長度為200ms,即地址分辨率為200ms。
  ISD器件可以進行多段錄放操作,每一段稱為一個語音信息段。一個語音信息段由其起始地址、記錄的數據和信息結束標志EOM(表示一個語音信息段的結束)三部分組成。ISD器件出廠時,其內部存儲器的一行已經設計有多個可能的EOM標志位置。ISD4004系列一行有八個,第一個位于行起始后的25ms處,第八個位于行結束處,剩下EOM標志間隔25ms均勻分布。錄音停止后,向器件發送STOP命令,錄音的進程不會馬上停止,到了下一個最近的可能EOM標志位置時,用一個EOM標志寫入器件來記錄語音結束的位置。這樣做可以使錄音的進程在盡可能短的時間內停止。在實際應用中,一行最多只能有一個EOM標志說明語音信息段的結束,無論這個標志在哪里,下一條語音信息將從新的一行開始。所以一個語音信息段可以占用一行或多行存儲空間,可以包括多個地址單元;一個地址單元最多只能作為一個獨立的段。ISD4004最多可以分為1600個語音信息段。
  ISD器件存儲陣列中的每一行都可以獨立尋址。錄放操作都是從一行的行首開始,可以一直持續到行尾,自動無縫跳轉到下一行開始,繼續錄放。不同之處在于放音時,遇到EOM標志時,放音自動停止,產生中斷;錄音時,需要向器件發送STOP命令,寫入一個EOM標志,結束錄音。
  放音時,每播放一行語音,產生一個RAC周期信號。每個RAC周期表示ISD存儲器操作進行了一行。該信號保持175ms的高電平,低電平為25ms。該端可以用于存儲器管理。ISD在播放和快進操作中檢測到EOM或者OVF標志(表明ISD錄放操作已經達到存儲器的末尾)時,都會產生中斷,變低并保持。中斷狀態在下一個SPI周期時清除,也就是說每播放完一個語音信息段,便會產生中斷。因此,RAC和配合,可以確定每個語音段的起始和結束地址。在硬件設計中,母片ISD4004的引腳接單片機的外部中斷" title="外部中斷">外部中斷INT0引腳,母片ISD404的RAC引腳接單片機的外部中斷INT1引腳,通過外部中斷INT0的中斷程序,判斷語音信息段的結束,通過外部中斷INT1的中斷程序,記錄播放的行數目(即行地址),那么下一個地址就是新的語音信息段的開始地址。這樣可通過中斷服務程序,獲取每個語音信息段的地址,然后建立地址索引表,記錄其起始地址。
2.1.2 各種子程序" title="子程序">子程序的設計
  為了便于編程,對ISD器件的操作都需要設計相應的子程序。其中有:POWERUP(上電" title="上電">上電)、SETPLAY(從指定地址開始放音)、PLAY(從當前地址開始放音)、SETREC(從指定地址開始錄音)、REC(從當前地址開始錄音)、SETRMC(從指定地址開始快進)、MC(從當前地址開始快進)、STOP(停止當前操作)、STOPWRDN(停止當前操作并掉電)、RINT(讀狀態OVF和EOM)。在實際應用中,針對母片和子片都有相應的子程序。根據器件的手冊,某些操作必需進行適當的延時。播放和錄音時,還應遵守適當的操作次序。
  (1) POWERUP
  上電操作時,要等待Tpud(上電延遲)后器件才能工作。因此,單片機發送完上電指令后,必須等待Tpud,才能發送其它的指令。對于ISD4004-8MP,Tpud=25ms。
  (2) STOP
  在放音或者錄音過程中停止當前操作時,單片機發送完停止指令后,要等待Tstop后器件才能停止工作。對于ISD4004-8MP,Tstop=50ms。
  (3) 為了達到較好的放音和錄音質量,錄音和放音時,建議采用下面的操作順序:
  放音時:①發送POWERUP命令;②等待Tpud;③從指定地址播放時發送SETPLAY命令,從當前地址播放時發送PLAY命令;④結束放音時發送STOP命令或者等待播放操作檢測到EOM或者OVF時自動停止。⑤等待Tstop。
  錄音時:①發送POWERUP命令;②等待Tpud;③再次發送POWERUP命令;④等待2倍Tpud;⑤從指定地址錄音時發送SETREC命令;從當前地址錄音時發送REC命令;⑥發送STOP命令,結束錄音;⑦等待Tstop。
2.1.3 拷貝程序的設計
  拷貝前,先把母片語音完全播放一遍,建立地址索引表。母片語音地址確定后,可以開始語音拷貝。通過相關子程序,從母片地址索引表中調入不同語音段的地址,開始播放,子片在相同的地址開始錄音。播放到一個語音段結束時,母片檢測到EOM標志,放音結束,并產生中斷,單片機調用中斷程序,向子片發送STOP命令,寫入EOM標志,表示語音結束。延時Tstop,跳出中斷后,記錄已經錄制的語音數目,并調入下一條語音的地址,重復進行操作,直到地址表查詢完畢或者母片檢測到OVF標志,表示全片放音結束,錄音結束。


2.2 硬件電路的設計
  系統硬件電路圖如圖1所示。主要由單片機AT89C51、電源轉換芯片MAX603、有關按鍵和跳線、兩片同型號ISD4004-8MP(一片為母片,一片為子片)和運放μA741等組成。硬件設計時,要注意以下幾個方面:
  (1)單片機引腳模擬SPI接口,編程時應注意其時序。
  (2)母片INT和RAC引腳分別接單片機外部中斷INT0和INT1,應有上拉電阻。
  (3)芯片采用+3V電源供電,放音時最大消耗電流為30mA,錄音時最大消耗電流為40mA,因此ISD芯片要有獨立的電源提供穩定的供電。設計中采用MAX603電壓轉換芯片。
  (4)錄音時輸入信號既可采用單端輸入(信號接在同相模擬輸入端ANA IN+),也可采用差分輸入(信號同時接在同相模擬輸入端ANA IN+和反相模擬輸入端ANA IN-)。采用單端輸入時,輸入信號的峰峰值最大為32mV,此時器件輸出AUD OUT的峰峰值大約為450mV。為了擁有較好的音質,需要對母片的聲音輸出進行衰減,再通過去耦電容" title="去耦電容">去耦電容,接到子片的同相模擬輸入端ANAIN+。而反相模擬輸入端ANAIN-則通過去耦電容接地。兩個去耦電容大小值應相同。
  (5)同型號芯片互相拷貝,應使用ISD器件的內部時鐘,即XCLK接地;采用音質優先模式,保障拷貝出的器件不會出現語速失真的情況。
  (6)為了使噪聲最小,器件的模擬電路和數字電路應使用不同的電源總線,并且分別引到外封裝的不同引腳上,模擬電源和數字電源最好分別走線,盡可能在靠近電源處相連,去耦電容應盡量靠近器件。器件內部的模擬電路和數字電路也應使用不同的地線。幾個Vssa盡量在引腳焊盤上相連,并且用低阻通路連到地線上,Vssd也用低阻通路連接到地線上。
3 系統測試
  拷貝完畢后,對錄制的子片進行測試。系統采用夾具設計,把母片和子片取出,把子片放在母片的位置,通過更改相應的跳線,使系統工作在放音模式下。采用順序播放(即語音按照順序連續播放)方法,確認錄入子片的全部語音信息。按地址播放(按照母片的地址索引表從子片的相應地址逐條播放)方式,確認子片語音信息地址和母片完全一致。通過測試,子片語音信息地址與母片完全一致,語音質量接近于母片質量,達到了較好的效果。
  經測試,本系統適用于ISD4004系列的全部型號,只需要在程序中更改為各自型號的Tpud和Tstop即可。原則上,同型號和時間長度的ISD語音芯片都可以用本系統拷貝,但由于不同型號器件每行語音長度(即地址分辨率)不同,它們之間的拷貝可能會出現未知的問題。
4 部分程序
  下面是語音拷貝和播放的部分程序。
  …………
  ;偽定義
  SPI_SS1 EQU P1.0
  SPI_MOSI1 EQU P1.1
  SPI_MISO1 EQU P1.2
  SPI_SCLK1 EQU P1.3
  SPI_SS2 EQU P1.4
  SPI_MOSI2 EQU P1.5
  SPI_MISO2 EQU P1.6
  SPI_SCLK2 EQU P1.7
  ISD_STOP_KEY EQU P0.0
  ISD_EN_KEY EQU P0.1
  ISD_PR_KEY EQU P0.2

  …………
  ;初始化單片機
  LCALL INIT_MCU

  ;初始化母片ISD4004,延時Tpud
  ;ISD1_×× 為母片子程序
  LCALL ISD1_POWERUP
  LCALL DELAY_25MS

  ;初始化子片ISD4004,兩次上電
  ;ISD2_×× 為子片子程序
  LCALL ISD2_POWERUP
  LCALL DELAY_25MS
  LCALL ISD2_POWERUP
  LCALL DELAY_25MS
  LCALL DELAY_25MS

  ;主程序,判斷是否開始操作
  MAINLOOP:
  JB ISD_EN_KEY, MAINLOOP
  ;判斷播放還是拷貝
  JB ISD_PR_KEY, ISD_PLAY1
  JNB ISD_PR_KEY, ISD_COPY1

  ;置中斷標志
  SETB FLG_ISD_INT

  ;拷貝程序
  ;從語音信息地址調用子程序ISD_ADDRESS_COPY,
  ;從索引表中調入地址
  ISD_COPY1:
  LCALL ISD_ADDRESS_COPY
  ;  從指定地址開始播放和錄音
  LCALL ISD1_SETPLAY
  LCALL ISD2_SETREC
  ;從當前地址開始播放和錄音
  LCALL ISD1_PLAY
  LCALL ISD2_REC

  ;判斷是否手動結束拷貝操作
  ISD_COPY2:
  JNB ISD_STOP_KEY, ISD_COPY3
  ;判斷一段語音是否播放完畢,是否中斷處理完畢
  ;播放完畢重置中斷標志
  JB FLG_ISD_INT, ISD_COPY2
  SETB FLG_ISD_INT
  ;延遲Tstop
  LCALL DELAY_25MS
  LCALL DELAY_25MS
  ;記錄拷貝個數,×× 為需要拷貝的語音數目
  ;判斷是否拷貝完畢,未完則繼續拷貝
  INC COPY_CNTR
  MOV A, COPY_CNTR
  CJNE A, ××, ISD_COPY1

  ;拷貝結束,返回主程序
  ISD_COPY3:
  LCALL ISD1_STOP
  LCALL ISD2_STOP
  LJMP MAINLOOP

  ;播放程序,順序播放方式
  ;設置從地址00開始進行播放
  ISD_PLAY1:
  MOV ISD_ADRESS_H, #00H
  MOV ISD_ADRESS_L, #00H
  LCALL ISD1_SETPLAY
  ;開始播放
  ISD_PLAY2:
  LCALL ISD1_PLAY

  ;判斷是否手動結束播放
  ISD_PLAY3:
  JNB ISD_STOP_KEY, ISD_PLAY4
  ;判斷一段語音是否播放完畢,是否中斷處理完畢
  ;播放完畢重置中斷標志
  JB FLG_ISD_INT, ISD_PLAY3
  SETB FLG_ISD_INT
  ;繼續播放
  JMP ISD_PLAY2

  ;播放結束
  ISD_PLAY4:
  LCALL ISD1_STOP
  LJMP MAINLOOP
  …………
  拷貝出的子片已經應用在排隊管理系統的語音部分。在實際使用中,子片完全可以替代母片,效果良好。本系統不但解決了ISD4004系列器件的語音錄制問題,而且復制出的器件地址完全一致,與傳統的錄制方法相比,有很大的優勢。
參考文獻
1 ISD4004 Series Single-Chip Multiple-Messages Voice Record/Playback Devices 8-, 10-, 12-, and 16-Minute Duration. Winbond Electronics Corp., 2004
2 The ISD Chipcorder Product Line: Sizes, Row Lengths and Other Useful Drtails for Address Able ISD Products.Winbond Electronics Corp., 2000
3 劉 欣,安欣賞,劉大生,許鳴宇.ISD語音器件分段地址的獲取.電子技術應用,1999;25(10):64~65

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 久久久久亚洲av成人网 | 日韩美香港a一级毛片| 亚洲第一页在线观看| 粗大的内捧猛烈进出视频| 四虎影院2019| 里番本子侵犯肉全彩3d| 国产日韩在线看| 美女无遮挡拍拍拍免费视频| 在公交车上被站着被c| jlzz奶水太多奶水太多| 成人动漫h在线观看| 中文字幕精品1在线| 日本猛少妇色xxxxx猛交| 久久这里只精品99re免费| 欧美bbbbxxxx| 亚洲国产aⅴ成人精品无吗| 欧美添下面视频免费观看| 亚洲精品tv久久久久久久久久| 男女下面无遮挡一进一出| 公交车上性配合享受视频| 综合网日日天干夜夜久久| 国产h肉在线视频免费观看| 视频免费在线观看| 国产免费黄色片| 青青草原亚洲视频| 国产免费一区二区三区不卡 | 欧美日韩在线一区二区三区| 亚洲精品国产精品乱码不99| 焰灵姬下面夹得好紧| 人碰人碰人成人免费视频| 男男动漫全程肉无删减有什么| 全彩里番acg里番| 精品一区二区三区免费视频| 加勒比色综合久久久久久久久| 美女大量吞精在线观看456 | 免费看www视频| 精品久久久久久无码专区不卡| 动漫美女羞羞漫画| 精品国产人成亚洲区| 又大又粗又爽a级毛片免费看| 红色一片免费高清影视|