Interactive Speech recognizer and transparency

30.12.2015
The Beginning https://www.youtube.com/watch?v=vkEMMDzO_5s The Goal---without touching the hardware to speed up the synthesizer of speech, so that all contemplate, how Good conquers evil, and thought --- hardware) To avoid confusion, all items are numbered equally: 1.Было выяснено , что для генерации звука важен в основном младший байт, применена ассемблерная команда табличного преобразования Xlat It was found out that for the generation of sound is important in the main low-order byte, an assembler command of Xlat 1.Настраивается частота выполнения таймерного прерывания MOV AX,77h;OUT 1000000B,AL;MOV AL,AH; OUT 1000000B,AL; И способ пересылки в Звуковой Порт MOV AL,90h; OUT 1000011B,AL; И тогда пересылать в Звуковой Порт будем 1 Байт:OUT 1000010B,AL; The frequency of the timer interrupt execution is set to MOV AX, 77h; OUT 1000000B, AL; MOV AL, AH; OUT 1000000B, AL; And the way to send to the Sound Port MOV AL, 90h; OUT 1000011B, AL; And then send to the Sound Port will be 1 byte: OUT 1000010B, AL; 1.Используется два буфера для вывода на PCspeaker размерами по 64 kB, заполняемый , как ни странно ассемблерной командой операций со стеком Push. При этом в одновременно работающих прерываниях и подпрограммах постоянно выполняются эти команды операций со стеком Push-POP , но путаницы тем не менее не происходит.Т.е. организуется 2 собственных стека.Вычитывается из буфера(Он же стек) обычным способом:SUB DI,2; MOV AL,[DI]; OUT 1000010B,Al; ВОЛЕЮ судеб DI,это регистр процессора,в оригинальной версии Синтезатора Речи не оказался задействован.С помощью POP вычитывать нельзя точно!!! There are two buffers for output on PCspeaker in the size of 64 kB, filled, oddly enough by an assembler command operations with the Push stack. At the same time, interrupts and subroutines run simultaneously these commands operate with the Push-POP stack, but confusion does not occur anyway. 2 own stacks are organized. It is calculated from the buffer (the same stack) in the usual way: SUB DI, 2; MOV AL, [DI]; OUT 1000010B, Al; The DI register of the processor, in the original version of the Synthesizer Speech was not involved. Using the POP can not be read accurately !!! 1.While it is being filled with one command using the Push command, the other one sounds (the data is sequentially sent by the Fifo system to the PCspeaker) Then, after pronouncing one word from the text, these buffers change roles --- their switching takes place. In this situation, use only one buffer --- write to it and simultaneously read from it --- it is impossible. There are "stuttering", since reading from the buffer is uniformly in time (isochronous), and writing to this buffer --- is not isochronous. And there are "slips", i.e. reading and scoring of data not yet recorded, but the scoring of the data remaining from the previous scoring (in our case, one word from the text). And as a result --- "stuttering" Пиратская копия Windows на экран внизу время от времени отоборожает сообщение мешающее обзору.Др

Похожие видео

Показать еще