Speech synthesis system based on MSP53C392

Abstract: Introduce a universal speech synthesis system based on a single station and MSP53C392; it can use a variety of speech compression algorithms to seamlessly mix and match as needed to optimize speech quality and storage capacity.

With the rapid development of speech processing and synthesis technology and large-scale integrated circuits, speech synthesis has been continuously commercialized, and different manufacturers have launched speech synthesis devices implemented with various different principles. This article introduces a MSP53C392 passive synthesizer with high cost performance, which is a speech synthesis system controlled by a single-chip microcomputer. The advantages of the system: â‘  No need to develop voice data codes, and because the MSP53C392 voice processor is designed to be a catalog type, it can allow users to quickly bring the voice system to the market; Used to optimize voice quality and storage capacity.

1 System principle

The principle of the speech synthesis system composed of MSP53C392 is shown in Figure 1. The PC and TI's special software are used to convert and compress the speech data, and then download it to the Flash memory. Use the single-chip microcomputer to read the voice data through table lookup and scatter transfer, and then send the MSP53C392 to synthesize the output voice, drive the speaker after filtering and power amplification.

2 Hardware design

2.1 MSP53C92 speech synthesizer

The speech synthesis chip produced by Texas Instruments in the United States accepts compressed speech data from the main processor, and thus produces speech or music. The characteristics of the device are as follows:

①Can drive 32Ω speaker directly.

② In sleep mode, the maximum standby current is only 10μA.

â‘¢Various speech synthesis algorithms are integrated in the chip, users can choose from low data rate to high quality synthesis program according to requirements to adapt to various applications. Supported algorithms include:

* LPC D220 format of LPC 5220-at a sampling frequency of 8 kHz, the data rate is 3.0 Kbps and 1.5 Kbps respectively.

* MELP Ver4.1——When the sampling frequency is 8kHz, the data rate is 2 ~ 3.5Kbps.

* CELP V3.4——At 8kHz sampling frequency, the data rate can be selected from 4.2Kbps, 4.8Kbps, 6.2Kbps, 8.6Kbps, 10.7Kbps.

* 8-bit PCM——When the sampling frequency is 8kHz, the data rate is 64Kbps. FM II is used for frequency modulation of two-channel musical instrument synthesis:

* The software can choose 8kHz or 10kHz voice sampling frequency;

* There is an internal clock generator that does not require any external components;

* With digital volume control.

The MSP53C392 pins and definitions are shown in Figure 2.

2.2 Principle of hardware circuit

The main processor uses the detection method to communicate with the synthesizer, 3 control lines, and 8 data lines. Data is written to the synthesizer, and the state of the synthesizer is read back. The following uses 89C51 to realize control as an example. Use the P0 port of 89C51 to connect with the 8-bit data line of MSP53C392, and use the P1 port P1.0, P1.1 and P1.2 to connect the R / W, STROB and INIT terminals of MSP53C392, respectively. The wiring diagram of 89C51 and synthesizer is shown in Figure 3.

2.3 Software control

image 3

The compressed data is transferred to and read from the MSP53C392 by the method of detection. The steps of the read operation are as follows: â‘  89C51 makes the R / W of the synthesizer high. â‘¡ Make the STROB of the synthesizer high, and read back the status of BUSY and EOS. (A, if the BUSY signal is high, the synthesizer is not busy and is ready to accept a write operation; otherwise, it is not ready to accept the write operation, continue to repeat the read operation until BUSY is high. B, if the EOS signal is High level, the synthesis process has reached the end code of the voice data stream, 89C51 stops transmitting data, and resets the synthesizer.) 89C51 makes the STROB of the synthesizer high, the steps of the write operation are as follows: â‘  89C51 judges the synthesis according to the status of BUSY Whether the device is ready; â‘¡89C51 makes R / W low; â‘¢89C51 sends data to the data line; â‘£89C51 sends a rising edge to STROB to latch the data in the synthesizer input latch.

2.4 Output circuit

The synthesizer has two D / A conversion output pins DAC + and DAC-. There are two ways to output: Method 1, can directly drive the 32Ω speaker; Method 2, drive an op amp, as shown in Figure 4. The first-order low-pass filter is in the dotted frame, and the 100kΩ potentiometer is used for volume adjustment.

3 Software part

(1) Speech synthesis system control software

Figure 4

The main functions of the voice synthesis system control software solidified in the single chip are: initializing the system, detecting the keyboard, reading different voice segment data according to different keys, communicating with the voice synthesizer, transmitting voice data, and completing voice synthesis Reset and other control of the device, complete the reset and other control of the speech synthesis device. The data exchange program flow between 89C51 and MSP53C392 is shown in Figure 5.

(2) Speech synthesis software

The program used to control the voice synthesizer to separate voice parameters, decoding, interpolation and D / A conversion does not need to be written, and has been solidified in the ROM in the synthesizer.

(3) Data conversion and compression procedures

Since the synthesizer can only support the corresponding algorithm, it must process the existing voice files. For example, files with a sampling frequency of 44.1kHz CD quality and preprocessed voice files of WAV files. First of all, to achieve the function of re-sampling, for example, such programs as COOL EDIT and GOLDWAVE can achieve such a function, through the GOLDWAVE software for low-pass filtering to make the frequency width of 4kHz or 5kHz, and then 8kHz or 10kHz Frequency re-sampling; at the same time, the capacity is adjusted and saved in the data format of 16-bit mono PCM. Secondly, TI's SDS3000 software is used to convert the data to MELP or CELP format, or WINSDS tool to convert the data to LPC format.

As for generating two-channel stereo music, MD2FM.EXE can be used to convert MIDI (.mid) format to FM format.


Tech Zone supports Amazon (AWS) media services to provide quality assurance for end-to-end video. Imec is about to shock the HD experience brought by the first short-wave infrared (SWIR) band hyperspectral imaging camera 4K ultra-high-definition Home Theater Projector. Shengju Apple TV 4K disassembly report based on unified computing architecture technology video display system design: familiar modular components

Follow WeChat

Interesting and informative information and technical dry goods

Download Audiophile APP

Create your own personal electronic circle

Follow the audiophile class

Lock the latest course activities and technical live broadcast
Collect People collection
share it:
comment
Publish

related suggestion

var check_allow = "/d/Api/iscantalk.html"; var add_url = '/ d / article / write /'; function CheckLogin () {now_uid = ''; var ElecfansApi_checklogin = '/ webapi / passport / checklogin'; var logout_url = "{: U ('Login / logout')}"; var logout_url = 'http://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front'; $ .get (ElecfansApi_checklogin, function (data, textStatus) {if (data! = "") {EchoLoginInfo (data); CheckEmailInfo (data); data = $ .parseJSON (data); now_uid = data.uid; / * var login_content = 'write an article
'+ data.username +'
Quit '; * / var login_content =' write an article
'+ data.username +'
Set exit '; $ (' # login_area '). Html (login_content); var win_width = $ (window) .width (); if (win_width> 1000) {$ ("# mine"). MouseDelay (200) .hover (function () {$ ("# mymenu"). show ();}, function () {$ ("# mymenu"). hide ();});}} else {var content = 'Login Registration'; $ ('# login_area'). html (content); $ (". special-login"). click (function (e) {$ .tActivityLogin (); return false;});}});} $ (function () {// comment ------------------------------- var comment = $ ("# comment"); var comment_input = $ ("# comContent"); // Submit comment click event interaction $ ("# comSubmit2"). on ('click', function () {var content = comment_input.text (); // Empty input box comment_input. html (""). focus (); // Submit data to the server $ .ajax ({url: '/plus/arcComment.php', data: {aid: $ ("# webID"). val (), dopost : 'apiPubComment', content: content}, type: 'post', dataType: 'json', success: function (data) {// Data format returned: if (data.status == "successed") {// Build temporary comment DOM var dom = ''; dom + = '
'; dom + =' '; dom + ='
'; dom + ='

'+ data.data.username +' '; dom + ='

'; dom + =' '+ content +' '; dom + =' '; dom + =' just now '; dom + =' '; dom + =' '; // insert a temporary comment to the list $ ("# comment ") .append (dom);} if (data.status ==" failed ") {// alert (data.msg); layer.msg (data.msg);}}}); return false;}); (function () {/ * * Insert single sign-on JS * / var setHost = 'https://passport.elecfans.com'; // Set domain name var script = document.createElement ('script'); script.type = 'text / javascript'; script.src = setHost + '/public/pc/js/t.passport.js'; script.setAttribute ("id", "sso_script"); script.setAttribute ("data-ssoSite", setHost); script.setAttribute ("data-ssoReferer", encodeURIComponent (location.href)); script.setAttribute ("data-ssoSiteid", "11"); var body = document.getElementsByTagName ("body"). item ( 0); body.appendChild (script);}) () / * * It is recommended to modify the style of the article without a picture * * / $ (". Article .thumb"). Each (function () {if ($ (this). find ('img'). attr ('src') == "") {$ (this) .find ('img'). remove (); $ (this) .parent (). css ('padding-left ',' 0px ');}}); / * Baidu share * / window._bd_share_config = {common: {bdText: '', // Custom share content bdDesc: '', // Custom share summary bdUrl: window.location.href, // Custom share URL address bdPic: ''} , share: [{"bdSize": 60, "bdCustomStyle": true}]} with (document) 0 [(getElementsByTagName ('head') [0] || body) .appendChild (createElement ('script')). src = 'http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion=' + ~ (-new Date () / 36e5)]; var add_url = '/ d / article / write / '; // var check_allow = "{: U (' Api / iscantalk ')}"; var check_allow = "/ d / api / iscantalk"; var click_items_length = $ ('. art_click_count '). length; if ( click_items_length> 0) {var id_str = ''; $ ('. art_click_count'). each (function () {id_str + = $ (this) .attr ('data-id') + ',';}) // var url = "{: U ('Api / getclickbyids')}"; var url = "/ d / api / getclickbyids"; var id_data = 'id_str =' + id_str; $ .ajax ({url: url, data: id_data, type: 'post', dataType: 'json', success: function (re) {if (re.list.length> = 1) {var list = re.list; for (var i in list) {var t emp_id = list [i] ['id']; var temp_span = $ (". art_click_count [data-id =" + temp_id + "]") temp_span.html (list [i] ['click']);}} }})} $ ("# comContent"). click (function () {if (now_uid == '') {$ .tActivityLogin (); return false;}}) $ (function () {var follow_wrap = $ ( ".author-collect"); var now_uid = "{$ _super ['uid']}"; var face_src = "{$ _super ['uface']}"; var getFollowNum = $ (". followNum strong"). html (); // Follow $ (window) .on ('click', '.author-collect', function () {if (now_uid == '') {$ .tActivityLogin (); return false;} if ( $ (this) .attr ('id') == 'follow') {$ .post ('/ d / user / follow', {tuid: article_user_id}, function (data) {// Data format returned: if (data.status == "successed") {$ (". followNum strong"). html (++ getFollowNum); follow_wrap.html ('followed'). attr ('id', 'cancelFollow'). css ( 'background', '# 999'); var follow_user = ' '; $ (' # follow_list '). append (follow_user);} if (data.status == "failed") {alert (data.msg);}});} else {// Unfollow if ($ ( this) .attr ('id') == 'cancelFollow') {$ .post ('/ d / user / cancelFollow', {tuid: article_user_id}, function (data) {// Data format returned: if (data .status == "successed") {follow_wrap.html ('Follow'). attr ('id', 'follow'). css ('background', '# f90'); $ (". followNum strong"). html (-getFollowNum); $ ('# follow_list .face'). each (function () {var target_uid = $ (this) .attr ('data-uid'); if (target_uid == now_uid) {$ ( this) .remove ();}})} if (data.status == "failed") {alert (data.msg);}}); return false;}}});});}); / * var myface = "{$ _super ['uid'] | avatar}"; var myname = "{$ _super ['username']}"; var article_id = {$ article ['id']}; var article_user_id = {$ article ['mid']}; // Article author ID $ (function () {<notempty name = "clearnum"> // Reduce the number of reminders var count = parseInt ($ ("# noticeCount"). html ()); count = count-{$ clearnum}; $ ("# noticeCount"). html (count); if ( count

HD Mini Projector

HD Mini Projector-1080P high-resolution display, magnify the details and present a clear picture, without any distortion in direct projection. The LED light source system integrates color control to improve the brightness, quality and stability of the picture, and present the real world in front of your eyes.

led home projector 1080p,1080p business projector,wifi 1080p home theater projector

Shenzhen Happybate Trading Co.,LTD , https://www.szhappybateprojectors.com

Posted on