<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_12-87%2F%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%87%D0%B8</id>
	<title>Радио-86РК/Радио 12-87/Программный синтезатор речи - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_12-87%2F%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%87%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_12-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%87%D0%B8&amp;action=history"/>
	<updated>2026-05-05T04:19:20Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_12-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%87%D0%B8&amp;diff=992&amp;oldid=prev</id>
		<title>Panther: http://retro.h1.ru/RK86/Sound/Sintez.html</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_12-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%87%D0%B8&amp;diff=992&amp;oldid=prev"/>
		<updated>2008-07-02T06:36:10Z</updated>

		<summary type="html">&lt;p&gt;http://retro.h1.ru/RK86/Sound/Sintez.html&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ДИ|Автор=А. АНДРЕЕВ|Источник= http://retro.h1.ru/RK86/Sound/Sintez.html}}&lt;br /&gt;
&lt;br /&gt;
Наши постоянные читатели, видимо, помнят цикл&lt;br /&gt;
статей «Музыка нулей и единиц», в которых рассказывалось о цифровой звукозаписи.&lt;br /&gt;
В этом номере мы предлагаем владельцам «Радио-86РК» на практике убедиться в&lt;br /&gt;
способностях компьютеров к обработке звуковых сигналов. А о том, как &amp;quot;тому «научить»&lt;br /&gt;
компьютер, будет рассказано в другой раз.&lt;br /&gt;
&lt;br /&gt;
Вопрос расширения возможностей радиолюбительских&lt;br /&gt;
микро-ЭВМ, наверное, никогда не перестанет интересовать их создателей. Проведение&lt;br /&gt;
расчетов, помощь в обучении детей основам математики, игры с домашним компьютером&lt;br /&gt;
— все это стало уже обычным. А что еще могут микро-ЭВМ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3000 F5 16 09 3А 02 8В 0F 0F 0F 0F E6 01 0F 5F CD 45&lt;br /&gt;
3010 30 3А 02 80 0F 0F 0F 0F E6 01 C2 25 30 7В 17 15 &lt;br /&gt;
3020 C2 0D 30 F1 C9 57 C3 1D 30 16 08 7B 17 CD 45 30&lt;br /&gt;
3030 DA 3F 30 F5 3E 00 32 02 80 F1 15 C2 2C 30 C9 F5&lt;br /&gt;
3040 3E FF C3 36 30 C5 F5 E5 2A 91 30 01 04 00 7E 23&lt;br /&gt;
3050 7E 23 0В 79 B0 C2 4E 30 22 91 30 E1 F1 С1 C9 21 &lt;br /&gt;
3060 00 10 01 00 10 3E 80 32 08 E0 CD 00 30 73 23 0В&lt;br /&gt;
3070 79 B0 C2 6A 30 C3 00 F8 21 00 10 01 00 10 3E 80&lt;br /&gt;
3080 32 08 E0 5E CD 29 30 23 0В 79 B0 C2 83 30 C3 00 &lt;br /&gt;
3090 F8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вниманию читателей предлагается один из способов&lt;br /&gt;
«научить» машину запоминать, а потом воспроизводить фрагменты человеческой речи&lt;br /&gt;
с помощью чисто программных средств. Речевые сигналы обрабатываются в «синтезаторе»&lt;br /&gt;
программой, размещаемой в ОЗУ компьютера. Их ввод и вывод осуществляются через&lt;br /&gt;
интерфейс связи с магнитофоном, усилитель записи которого используется для усиления,&lt;br /&gt;
а встроенный громкоговоритель — для воспроизведения синтезируемых сигналов.&lt;br /&gt;
&lt;br /&gt;
Для работы с программным «синтезатором» речи коды&lt;br /&gt;
программы обслуживания, приведенные в таблице, необходимо занести в ОЗУ микро-ЭВМ.&lt;br /&gt;
&lt;br /&gt;
Программа позволяет запомнить, а потом воспроизвести&lt;br /&gt;
произвольное число раз речевое сообщение длительностью около 4 с. Для размещения&lt;br /&gt;
массива закодированной речи в ОЗУ компьютера отведена область объемом 4 Кбайт,&lt;br /&gt;
расположенная по адресам 1000—1FFF. Массив речи заносят в ОЗУ с noмощью микрофона,&lt;br /&gt;
подключенного к работающему в режиме записи магнитофону, линейный выход которого&lt;br /&gt;
соединен с входом чтения интерфейса микро-ЭВМ. Для этого, запустив программу&lt;br /&gt;
ввода речи директивой МОНИТОРА G305F, произносят перед микрофоном любую фразу&lt;br /&gt;
длительностью около 4 с (время вполне достаточное, чтобы поздравить компьютер&lt;br /&gt;
с Новым годом).&lt;br /&gt;
&lt;br /&gt;
Воспроизводят записанную речь, запустив программу&lt;br /&gt;
вывода директивой МОНИТОРА G3078. Для усиления речевых сигналов, поступающих&lt;br /&gt;
с выхода интерфейса микро-ЭВМ, также используется усилитель записи магнитофона,&lt;br /&gt;
а для их воспроизведения — его встроенный громкоговоритель (оказывается, компьютеру&lt;br /&gt;
не чужда «этика» — на поздравление он отвечает поздравлением).&lt;br /&gt;
&lt;br /&gt;
«Синтезированная» программой речь, конечно, сильно&lt;br /&gt;
искажена, однако подбором уровня усиления сигнала с микрофона при записи и «завала»&lt;br /&gt;
высших частот регулятором тембра магнитофона при воспроизведении можно добиться&lt;br /&gt;
вполне приемлемых результатов.&lt;br /&gt;
&lt;br /&gt;
Что компьютеры способны синтезировать речь — известно,&lt;br /&gt;
вероятно, многим читателям журнала, но далеко не все из них могут похвастаться&lt;br /&gt;
тем, что слышали эту речь собственными ушами. В канун Нового года число таких&lt;br /&gt;
«счастливчиков» существенно увеличилось — к ним присоединились владельцы компьютера&lt;br /&gt;
«Радио-86РК», думаем, что эксперимент по синтезу речи, предложенный в последнем&lt;br /&gt;
номере прошлого года, вызвал у наших читателей желание его продолжить. Поэтому,&lt;br /&gt;
как и было обещано, в этом номере будет рассказано, как «РК» приобрел дар речи.&lt;br /&gt;
Тем же, кто решит более глубоко изучить этот вопрос, рекомендуем прочесть книгу&lt;br /&gt;
Джона Кейтера «Компьютеры — синтезаторы речи», выпущенную издательством «Мир»&lt;br /&gt;
в 1985 году.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим несколько подробнее использованный&lt;br /&gt;
в программном «синтезаторе» метод кодирования речи с использованием частотно-импульсной&lt;br /&gt;
модуляции (ЧИМ). Он сходен с кодированием по методу дельта модуляции и заключается&lt;br /&gt;
в запоминании одного бита данных при каждой выборке сигнала.&lt;br /&gt;
&lt;br /&gt;
Для этого речевой сигнал дискретизируется по уровню&lt;br /&gt;
с частотой около 8000 выборок в секунду. Каждая выборка является бинарной величиной:&lt;br /&gt;
если входной сигнал больше порога срабатывания компаратора D21, то ей присваивается&lt;br /&gt;
единичное значение, если меньше — нулевое. Получающийся при этом поток прямоугольных&lt;br /&gt;
импульсов компонуется в байты и заносится в ОЗУ компьютера.&lt;br /&gt;
&lt;br /&gt;
При воспроизведении прямоугольный сигнал усиливается&lt;br /&gt;
и одновременно интегрируется элементами усилителя воспроизведения, после чего&lt;br /&gt;
воспроизводится громкоговорителем магнитофона.&lt;br /&gt;
&lt;br /&gt;
Основное достоинство такого способа «синтеза»&lt;br /&gt;
речи — минимальный объем необходимых для его реализации аппаратных средств,&lt;br /&gt;
однако за это достоинство приходится расплачиваться невысоким качеством «синтезируемой»&lt;br /&gt;
речи.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим модули, из которых состоит программа&lt;br /&gt;
«синтезатора» (см. таблицу).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; подпрограмма INBYT возвращает в  регистре Е микропроцессора&lt;br /&gt;
; восемь последовательных выборок речевого сигнала. Младший&lt;br /&gt;
; бит соответствует более ранней по вpемeни выборке.&lt;br /&gt;
PORT$C 	SET 	8002Н 	; Адрес парта ввода сигнала в РК&lt;br /&gt;
INBYT: 	PUSH 	PSW 	; Сохранение содержимого (А) в стеке&lt;br /&gt;
	MVI 	D,9 	; Число бит в байте +1 в счетчик бит&lt;br /&gt;
	LDA 	PORT$C 	; Ввод из порта чтения (компаратор&lt;br /&gt;
	RRC 		; в компьмтере подключен к разряду D4&lt;br /&gt;
	RRC 		; порта ввода).&lt;br /&gt;
	RRC&lt;br /&gt;
	RRC 		; Теперь бит отсчета - в разряде D0&lt;br /&gt;
	ANI 	1 	; Выделить только информационный бит.&lt;br /&gt;
	RRC 		; Подготовка следующего бита&lt;br /&gt;
IM1: 	MOV 	Е,А&lt;br /&gt;
	CALL 	TIME 	; Задержка между выборками сигнала&lt;br /&gt;
	LDA 	PORT$C 	; ввод из порта очередной выборки&lt;br /&gt;
	RRC&lt;br /&gt;
	RRC&lt;br /&gt;
	RRC&lt;br /&gt;
	RRC 		; Информационный бит&lt;br /&gt;
	ANI 	1 	; Выделить только информационный бит,СУ=0&lt;br /&gt;
	JNZ 	IМЗ 	; Установить CY, если он не равен нулю.&lt;br /&gt;
IM2: 	MOV 	А,Е 	; Информационный бит - в аккумулятор&lt;br /&gt;
	RAL 		; Сдвинуть CY (информ. бит!) в аккумулятор&lt;br /&gt;
	DCR 	D 	; Скорректировать счетчик бит&lt;br /&gt;
	JNZ 	IМ1 	; Если не все 8 бит считаны, продолжить&lt;br /&gt;
	POP 	PSW&lt;br /&gt;
	RET&lt;br /&gt;
IM3: 	STC&lt;br /&gt;
	JMP 	IM2 	; Переход на сдвиг бита =1.&lt;br /&gt;
; Подпрограмма 	OUTBYTE выводит из микроЭВМ восемь выборок&lt;br /&gt;
; речевого сигнала, записанных в регистре Е микропроцессора.&lt;br /&gt;
; Более ранней 	по времени выборке соответствует младший бит&lt;br /&gt;
; информации.&lt;br /&gt;
OUTBYT: PUSH 	PSM&lt;br /&gt;
	MVI 	D,8 	; регистр D используете я как счётчик бит&lt;br /&gt;
	MOV 	А,Е&lt;br /&gt;
OM2: 	RAL 		; Сдвинуть текущий бит в CY&lt;br /&gt;
	CALL 	TIME&lt;br /&gt;
	ДС 	ОМ1&lt;br /&gt;
	PUSH 	PSU 	; Сохранить текущий информационный бит&lt;br /&gt;
	XRA 	А 	; Обнулить аккумулятор, в частности, D0&lt;br /&gt;
ОМ4: 	БТА 	РОРТ$С 	; Выдать данный бит в выходной порт&lt;br /&gt;
OM3: 	POP 	PSM 	; Восстановить текущий информациооный байт&lt;br /&gt;
	DCR 	D 	; Все в бит выданы?&lt;br /&gt;
	JNZ 	ОМ2 	; Нет, продолжить выдачу бит.&lt;br /&gt;
	POP 	PSW 	;&lt;br /&gt;
	RET 		; Конец вывода байта&lt;br /&gt;
OM1: 	PUSH 	PSH&lt;br /&gt;
	MVI 	А,0FFН 	; Установить все выдаваемые биты в &amp;quot;1&amp;quot;&lt;br /&gt;
	JMP 	ОМ4&lt;br /&gt;
; Подпрограмма 	TIME обеспечивает задержку между отдельными выборками&lt;br /&gt;
; сигнала при вводе и выводе. Одновременно служит для регенерации&lt;br /&gt;
; ОЗУ компьмтера, так как при работе INBYT и OUTBYT видеоконтроллер&lt;br /&gt;
; остановлен! 	В скобках указано число машинных тактов,&lt;br /&gt;
; необходимых для выполнения каждой команды.&lt;br /&gt;
TIME: 	PUSH 	PSM 	; (11 T) Сохранить регистры проиесора&lt;br /&gt;
	PUSH 	I 	; (11 T)&lt;br /&gt;
	PUSH 	H 	; (11 T)&lt;br /&gt;
	LHLD 	REF 	; (16 T) Загруаить указатель адреса регенерации&lt;br /&gt;
	LXl 	B,CONST ; (10 T) регистр В - счетчик задержки&lt;br /&gt;
MT1: 	MOV 	A,M 	; (7 T) Произвести одно обращение по адресу&lt;br /&gt;
	INX 	H 	; (5 T) регенерации&lt;br /&gt;
	MOV 	A,M 	; (7 Т) и по следующему адресу&lt;br /&gt;
	INX 	Н 	; (5 T)&lt;br /&gt;
	DCR 	В 	; (5 T) Декрементировать счетчик задержки&lt;br /&gt;
	MOV 	А,В 	; (5 T)&lt;br /&gt;
	ORA 	С 	; (4 T) Содержимое счетчика равно нулю ?&lt;br /&gt;
	JNZ 	MT1 	; (17 T/11 T) Hет, продолжить цикл&lt;br /&gt;
	SHLD 	REF 	; (16 T) Запомнить указатель адреса регенерации&lt;br /&gt;
	POP 	Н 	; (11 Т) Восстановить содержимое регистров&lt;br /&gt;
	POP 	В 	; (11 Т) процессора&lt;br /&gt;
	POP 	PSW	; (11 Т)&lt;br /&gt;
	RET 		; (10 Т) Выход из подпрограммы задержки&lt;br /&gt;
; Праграмма INRAM ввoдит в указанную область  ОЗУ&lt;br /&gt;
; компьютера массива отсчетов сигнала заданной длины (запись речи)&lt;br /&gt;
DМА 	SET 	0F808Н 	; Адрес контроллера ПДП&lt;br /&gt;
INRAM: 	LXI 	H,NATCH ; НАЧАЛЬНЫЙ адрес записываемого МАССИВА&lt;br /&gt;
	LXI 	D,DEL 	; ДЛИНА записываемого МАССИВА в байтах.&lt;br /&gt;
	MVI 	А,80Н 	; Выключение контроллера дисплея&lt;br /&gt;
	8ТА 	DMA 	; НА время ЗАПИСИ звука&lt;br /&gt;
INM1: 	CALL 	INBYT 	; Прием восьми выборок СИГНАЛА&lt;br /&gt;
	MOV 	М,Е 	; ЗАПИСЬ подготовленного БАЙТА в ОЗУ и&lt;br /&gt;
	INX 	Н 	; указателя на элемент МАССИВА&lt;br /&gt;
	DCX 	В 	; коррекция СЧЁТЧИКА байт&lt;br /&gt;
	MOV 	А,B 	; МАССИВ ЗАПОЛНЕН ?&lt;br /&gt;
	ORA 	С&lt;br /&gt;
	JNZ 	INM1 	; Нет, продолжим запись&lt;br /&gt;
	JMP 	MONITOR ; Выход в монитор с ЗАПУСКОМ видеоконтроллера&lt;br /&gt;
; ПРОГРАММА OUTRAM выводит массив, записанный программой INRAM&lt;br /&gt;
; в виде последовательности отсчётов речевого СИГНАЛА&lt;br /&gt;
; (&amp;quot;воспроизведение речи&amp;quot;)&lt;br /&gt;
OUTRAM: LXI 	Н, MATCH ;НАЧАЛЬНЫЙ адрес МАССИВА отсчетов&lt;br /&gt;
	LXI 	В, DEL 	; ДЛИНА выводимого массива в байтах&lt;br /&gt;
	MVI 	А,80Н&lt;br /&gt;
	STA 	DMA&lt;br /&gt;
OUTM1: 	MOV 	Е,М 	; Текущий байт выборок в аккумулятор&lt;br /&gt;
	CALL 	OUTBYT 	; ВЫДАЧА 8 выборок СИГНАЛА НА выход&lt;br /&gt;
	INX 	Н&lt;br /&gt;
	DCX 	B 	; уменьшить счетчик байт&lt;br /&gt;
	MOV 	A,B&lt;br /&gt;
	ORA 	С 	; МАССИВ выдан полностью?&lt;br /&gt;
	JNZ 	OUTM1	; Нет, продолжить выдачу&lt;br /&gt;
	JMP 	MONITOR&lt;br /&gt;
	END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требующийся для синтеза речевого сообщения объем&lt;br /&gt;
ОЗУ (при темпе 8000 выб./с) равен 1 Кбайт на секунду звучания.&lt;br /&gt;
&lt;br /&gt;
В заключение хотелось бы остановиться на возможностях&lt;br /&gt;
повышения качества «синтезируемой» речи.&lt;br /&gt;
&lt;br /&gt;
Компаратор D21 компьютера «Радио-86РК» не имеет&lt;br /&gt;
гистерезиса и настроен достаточно близко к нулевому уровню — отсюда дополнительные&lt;br /&gt;
призвуки в «синтезированной» речи, появляющиеся, а результате переключения компаратора&lt;br /&gt;
шумовыми и фоновыми сигналами при вводе. Повышение порога срабатывания компаратора&lt;br /&gt;
и введение положительной обратной связи для создания гистерезиса улучшают условия&lt;br /&gt;
процесса квантования и очищают речевой сигнал от значительной доли шумов.&lt;br /&gt;
&lt;br /&gt;
Дополнительного улучшения качества «синтезируемой»&lt;br /&gt;
речи можно добиться включением ФНЧ с частотой среза около 4кГц в тракт усиления&lt;br /&gt;
сигнала, как при вводе, так и при выводе. Возможна также и чисто программная&lt;br /&gt;
обработка «массива речи», однако этот метод требует развитых программных средств&lt;br /&gt;
обработки такой информации и в настоящее время еще проработан не полностью.&lt;br /&gt;
&lt;br /&gt;
А. АНДРЕЕВ, г. Москва&lt;br /&gt;
&lt;br /&gt;
[[Категория:Радио-86РК/Публикации|23]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>