What is claimed is:
1. A voice message managing method for a voice data electronic device, said electronic device including a memory device having a first memory area and a second memory area distinct from one another, wherein the first memory area includes plural groups each including plural blocks of memory cells, the method comprising:
a) memorizing in said first memory area a plurality of voice messages, each formed by a plurality of message portions;
b) memorizing in said second memory area information regarding said plurality of voice messages;
initializing said memory device, identifying conditions of proper operation and malfunctioning of said blocks;
storing in the list information on a status of each of said blocks regarding said conditions of proper operation and malfunctioning; and
defining a table for memorizing of data regarding said voice messages and addresses of separate sequences of blocks in which each of said voice messages is memorized; wherein said step b) comprises the steps of:
b1) memorizing said list in a first memory sub-area of said second memory area; and
b2) memorizing said table in a second memory sub-area of said second memory area.
2. The method according to claim 1, wherein said step a) comprises the step of:
memorizing in each block a respective one of the message portions, in the form of a plurality of digitized voice data, said message portions of one of the voice messages being memorized in non-contiguous sequences of said blocks.
3. The method according to claim 1 wherein said information on the status of said blocks is coded by means of a two-bit status code.
4. The method according to claim 1 wherein said step a) comprises the steps of:
detecting the presence of a first one of said blocks available in said first memory area;
updating, in said list, a status code associated with said first block;
memorizing a first portion of a first one of said voice messages in said first block;
detecting a condition of continuation of said first voice message;
detecting the presence of a second one of said blocks available in said first memory area;
memorizing a second portion of the first voice message in the second block;
verifying whether said second block is contiguous to said first block;
in response to verifying that the second block is not contiguous to the first block, appropriately updating said table; and
detecting the presence of additional ones of said block available in said first memory area, memorizing respectively additional portion of the first voice messages in the additional ones of said blocks, verifying whether succeeding ones of the additional blocks are contiguous with preceding ones of the blocks, and appropriately updating the table until a condition of conclusion of said voice message is detected.
5. The method according to claim 4 wherein said status code includes a plurality of bits and said step a2) comprises modifying one of the bits of said status code associated to aid first block.
6. The method according to claim 4 wherein said steps a1) and a5) each comprise the steps of detecting a condition of filling of said first memory area, and of interrupting said step a) in the case of a memory-area-full condition; and
said step a4) comprises the steps of appropriately updating said table in the absence of said condition of continuation, and of interrupting said step a).
7. The method according to claim 4, further comprising a step of entering a new voice message into a previously memorized message, including the steps of:
acquiring a datum identifying said previously memorized voice message;
acquiring a point of entry of said new voice message into said previously memorized voice message; and
repeating said steps a1) to a8).
8. The method according to claim 1, further comprising:
determining that a selected block of a selected group of the first memory area is to be erased;
memorizing in the list in said second memory area an indication that the selected block is to be erased;
postponing erasing of the selected block until there are indications in the list that a plurality of blocks, including the selected block, of the selected group are to be erased; and
erasing in a single operation the selected group in response to determining that there are indications in the list that a plurality of blocks, including the selected block, of the selected group are to be erased.
9. A voice message managing method for a voice data electronic device, said electronic device including a memory device having a first memory area and a second memory area distinct from one another, the method comprising:
a) memorizing in said first memory area a plurality of voice messages, each formed by a plurality of message portions;
b) memorizing in said second memory area information regarding said plurality of voice messages;
organizing said first memory area as a sequence of blocks;
initializing said memory device, identifying conditions of proper operation and malfunctioning of said blocks;
defining a list containing information on a status of each of said blocks regarding said conditions of proper operation and malfunctioning; and
defining a table for memorizing of data regarding said voice messages and addresses of separate sequences of blocks in which each of said voice messages is memorized; wherein said step b) comprises the steps of:
b1) memorizing said list in a first memory sub-area of said second memory area; and
b2) memorizing said table in a second memory sub-area of said second memory area; wherein said table comprises:
a plurality of first vectors, each first vector being associated with a respective one of said voice messages and comprising a plurality of successive fields containing the data regarding said respective voice message and addresses for a first sequence of blocks containing said respective voice message; and
a plurality of second vectors, each second vector being associated with a respective one of said first vectors, and each second vector comprising a plurality of successive fields containing addresses for successive sequences of blocks in which said respective voice message is contained.
10. The method according to claim 9, further comprising the step of playing a voice message, said step of playing a voice message comprising the steps of:
c1) acquiring an identification datum identifying a voice message to be played;
c2) reading from said table a first vector of said voice message to be played associated with said identification datum;
c3) acquiring from said first vector a first address of a memory location in which a first sequence of contiguous blocks containing said voice message to be played starts, and acquiring from said first vector a second address of a memory location in which said first sequence of contiguous blocks terminates;
c4) playing said first sequence of contiguous blocks;
c5) reading said table to verify whether a second vector associated to said first vector is present;
c6) acquiring from said second vector a first address of a memory location in which a second sequence of contiguous blocks containing said voice message to be played starts, and acquiring from said second vector a second address of a memory location in which said second sequence of contiguous blocks terminates; and
c7) repeating said steps c4) to c6) until an end of said voice message to be played.
11. The method according to claim 9, further comprising a step of erasing a voice message, said step of erasing a voice message comprising the steps of:
d1) acquiring an identification datum identifying a voice message to be erased;
d2) reading in said table a first vector of said voice message to be erased associated to said identification datum;
d3) acquiring from said first vector an address of a memory sector containing said voice message to be erased;
d4) verifying whether other voice messages are present in said memory sector;
d5) memorizing said other voice messages in blocks of an available memory sector available, updating said list and said table;
d6) updating, in said list and said table, status codes associated with blocks containing said message to be erased;
d7) deleting said memory sector containing said voice message to be erased;
d8) reading said table to verify whether a second vector associated with said first vector is present;
d9) repeating said steps d3) to d8) until an end of said voice message to be erased;
d10) updating, in said list, status codes associated with said respective blocks containing said message to be deleted.
12. The method according to claim 11 wherein said step d5) comprises modifying one of the bits of the status codes associated to said blocks of said other voice messages; in that said step d6) comprises modifying one of the bits of the status codes associated to blocks containing said message to be erased; and in that said step d10) comprises modifying both the bits of said status codes associated to said blocks containing said message to be erased.
13. The method according to claim 11, further comprising a step of erasing portions of previously memorized message, including the steps of:
f1) acquiring an identification datum identifying said previously memorized voice message;
f2) acquiring a point of start of erasing of said previously memorized voice message;
f3) verifying whether other portions to be kept of said previously memorized voice message are present;
f4) memorizing said portions of said previously memorized voice message in blocks of an available memory sector, updating, in said list, status codes associated with said blocks of said available memory sector, and updating said table; and
f5) repeating said steps d2) to dl 0).
14. The method according to claim 9 wherein, associated with each first vector is available identifying a status of validity of a respective one of said voice messages.
15. The method according to claim 9, further comprising a step of memory-reorganization (garbage collection).
16. The method according to claim 15 wherein said step of memory reorganization comprises the steps of:
g1) comparing said list and said table to verify whether misalignments are present;
g2) in the presence of misalignments, updating said list and said table so as to eliminate said misalignments;
g3) sequentially reading said table and erasing first vectors and second vectors associated with previously erased voice messages; and
g4) memorizing, in an available memory sector, said updated list and said updated table.
17. A voice message managing method for a voice data electronic device, the method comprising:
storing a plurality of voice messages in a first memory area, each of the voice messages including a plurality of voice message portions that are stored in a plurality of memory blocks of the first memory area, respectively;
determining which of the voice message portions is stored in each of the memory blocks;
storing a message allocation table in a second memory area, the message allocation table including information characterizing the voice messages and addresses of separate sequences of blocks in which each voice message is stored in the first memory area;
identifying conditions of proper operation and malfunctioning of the blocks of the first memory area;
defining a list containing information on a status of each of the blocks regarding the conditions of proper operation and malfunctioning; and
memorizing the list in a first memory sub-area of the second memory area, wherein the message allocation table is stored in a second memory sub-area of the second memory area.
18. The method according to claim 17 wherein storing the message allocation table includes:
detecting the presence of a first one of the blocks available in the first memory area;
updating, in the list, a status code associated with the first block;
memorizing a first portion of a first one of the voice messages in the first block;
detecting a condition of continuation of the first voice message;
detecting the presence of a second one of the blocks available in the first memory area;
verifying whether the second block is contiguous to the first block;
if the second block is not contiguous with the first block, then appropriately updating the table; and
storing a second portion of the first voice message in the second block regardless of whether the second block is contiguous to the first block.
19. A voice message managing method for a voice data electronic device, the method comprising:
storing a plurality of voice messages in a first memory area, each of the voice messages including a plurality of voice message portions that are stored in a plurality of memory blocks of the first memory area, respectively;
determining which of the voice message portions is stored in each of the memory blocks;
storing a message allocation table in a second memory area, the message allocation table including information characterizing the voice messages and addresses of separate sequences of blocks in which each voice message is stored in the first memory area, wherein the message allocation table comprises:
a plurality of first vectors, each first vector being associated with a respective one of the voice messages and comprising a plurality of successive fields containing the data regarding the respective voice message and addresses for a first sequence of blocks containing the respective voice message; and
a plurality of second vectors, each second vector being associated with a respective one of the first vectors, and each second vector comprising a plurality of successive fields containing addresses for successive sequences of blocks in which the respective voice message is contained.
20. The method according to claim 19, further comprising playing a voice message by:
acquiring an identification datum identifying a voice message to be played;
reading from the message allocation table a first vector of the voice message to be played associated with the identification datum;
acquiring from the first vector a first address of a memory location in which a first sequence of contiguous blocks containing the voice message to be played starts, and acquiring from the first vector a second address of a memory location in which the first sequence of contiguous blocks terminates;
playing the first sequence of contiguous blocks;
reading the message allocation table to verify whether a second vector associated with the first vector is present; and
acquiring from the second vector a first address of a memory location in which a second sequence of contiguous blocks containing the voice message to be played starts, and acquiring from the second vector a second address of a memory location in which the second sequence of contiguous blocks terminates.
21. The method according to claim 19, further comprising erasing a voice message by:
acquiring an identification datum identifying a voice message to be erased;
reading in the message allocation table a first vector of the voice message to be erased associated with the identification datum;
acquiring from the first vector an address of a memory sector containing the voice message to be erased;
verifying whether other voice messages are present in the memory sector;
memorizing the other voice messages in blocks of an available memory sector available;
deleting the memory sector containing the voice message to be erased; and
reading the message allocation table to verify whether a second vector associated with the first vector is present.
|
TECHNICAL FIELD
The present invention regards a voice message managing method, in particular for a voice data recording/playing/editing electronic device.
BACKGROUND OF THE INVENTION
As is known, electronic devices are available on the market for the recording/playing/editing of voice data, such as telephone automatic intercepts present also in cell phones or DECTs, portable voice recorders, and the like, which use solid-state memory devices, for example of the flash EEPROM type, to store voice messages coming from a user.
The advantages that may be obtained from using these solid-state memory devices rather than magnetic tapes inside electronic devices for the recording/playing/editing of voice data are described in the U.S. Pat. No. 5,842,170, with particular reference to the possibility of modifying a voice message previously recorded inside the solid-state memory device by simply erasing a part of the voice message itself or by entering therein a new voice message. The U.S. Pat. No. 5,842,170, however, does not provide any teaching on how to manage the voice messages inside an electronic device for the recording/playing/editing of voice data.
In this connection, a possibility for managing voice messages of a known type consists in memorizing voice segments, corresponding to portions of a voice message to be memorized, in memory locations contained inside the solid-state memory device. Each voice segment is associated to a respective pointer which is contained inside the voice segment itself (for example as header), and the set of pointers determines the structure of the voice messages.
The above solution is not very efficient and flexible as regards implementation of the functions of partial editing and erasing of voice messages, in so far as the information for management of the latter is contained inside the voice messages themselves.
SUMMARY OF THE INVENTION
An embodiment of the present invention provides a voice message managing method for a voice data recording/playing/editing electronic device that overcomes the limitations and drawbacks described above with reference to the known art.
|