Вам нужна дипломная работа?
Интересует Программирование?
Оставьте заявку
на Дипломную работу
Получите бесплатную
консультацию по
написанию
Сделайте заказ и
скачайте
результат на сайте
1
2
3

Анализ речи человека в различных режимах вокализации.

  • 69 страниц
  • 13 источников
  • Добавлена 06.02.2011
3 500 руб. 7 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Оглавление
ВВЕДЕНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЙ АНАЛИЗ ОБЪЕКТА И ПРЕДМЕТА ДИПЛОМНОЙ РАБОТЫ
1.1 Объект
1.2 Предмет
ГЛАВА 2. ПРАКТИЧЕСКИЙ АНАЛИЗ ПРЕДМЕТА ДИПЛОМНОГО ИССЛЕДОВАНИЯ
2.1 Общая характеристика практического анализа
2.2 Особенности предмета исследования
2.3 Реализация
2.3.1 Модуль входа в программу
2.3.2 Основной графический модуль
2.3.3 Модуль выбора файлов
2.3.4 Модуль чтения речевого сигнала
2.3.5 Модули анализа звукового сигнала и отображения речи
2.4 Пример работы программы
ГЛАВА 3. НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ РАССМАТРИВАЕМОГО В ДИПЛОМНОЙ РАБОТЕ ПРЕДМЕТА ИССЛЕДОВАНИЯ
3.1. Проблемы, возникающие в действии рассматриваемого предмета исследования
3.3 Пути совершенствования рассматриваемого предмета
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ

Фрагмент для ознакомления

Для удобства и надежности передаваемую информацию разбивают на блоки (кадры), каждый из которых снабжается собственным набором этих кодов.
2.3 Реализация

Программа имеет дружественный интерфейс и легка в освоении. Графический интерфейс проектируется в среде разработки Visual C#.net. В данной системе можно быстро и качественно разрабатывать графические приложения, используя готовые компоненты.
Интерфейс программы разработан с учетом информативности получаемых пользователем данных. На рисунке 2.4.1 показано основное окно программы.
В верхней строке окна программы находится панель управления со стандартными вкладками. Ниже располагается панель с вкладками, которые позволяют пользователю выбирать файлы для обработки с репродуктивной и продуктивной речи. Непосредственно над графиками представлена информационная панель, которая дает пользователю возможность в реальном режиме времени наблюдать изменение графиков,.
На верхнем графике изображена частотная характеристика входных звуковых сигналов, а в нижнем – амплитудная характеристика сигналов.

2.3.1 Модуль входа в программу

При запуске программы вызывается функция «static void Main()». Эта функция инициализирует приложение путем вызова функции Application.EnableVisualStyles();. Далее запускается функция, которая составляет стиль программы путем вызова следующей функции Application.SetCompatibleTextRenderingDefault(false); . После нее запускается функция, которая создает диалоговое окно программы путем вызова функции Application.Run(new MainForm()); и запускает приложение. В теле этой функции так же предусмотрена обработка исключений try – catch.

2.3.2 Основной графический модуль

Основной графический модуль в исходном коде программы представлен как класс Form1. Он содержит следующие основные графические элементы:
PictureBox1 : Вывод графического изображения 1
PictureBox2 : Вывод графического изображения 2
textBox2 : Вывод результатов сравнения графиков

2.3.3 Модуль выбора файлов
Выбор режима работы программы осуществляется нажатием кнопки «Mode». При ее нажатии вызывается функция-обработчик этого события «private void openFile_pro_Click (object sender, EventArgs e)» Функция проверяет и сохраняет указанные файлы.

2.3.4 Модуль чтения речевого сигнала
Чтение и обработка звукового сигнала осуществляется функцией «private void start_Click (object sender, EventArgs e)». В этой функции задается файлы репродуктивной и продуктивной речи. Длина сигнала по времени определяется с помощью функции tmRefresh_Tick (). Дискретезированный и отфильтрованный сигн
2.3.5 Модули анализа звукового сигнала и отображения речи
Анализ и отображение звукового сигнала происходит в функции «Void AudioFrame.WaveIn(short *buf,int len)» после того как сигнал записан, дискретезирован и отфильтрован.

2.4 Пример работы программы

Перед началом работы с программлой, непосредственно после запуска программы необходимо выбрать файлы репродуктивной и продуктивной речи Рис 2.4.2 .
м
Рисунок 2.4.1 Главное окно программы


Рисунок 2.4.2 Окно выбора файлов репродуктивной и продуктивной речи.

После выбора файлов для программы нужно нажать кнопку «Пуск», в центре главного окна программы на панели с вкладками. После нажатия кнопки начнется чтение сигнала. Далее следует посмотреть результаты сравнения графиков репродуктивной и продуктивной речи путем нажатия вкладки «Результат» в левом верхнем углу экрана.
После того как графики созданы ен, необходимо переключить режим работы программы в «Амплитудная фильтрация звуковой речи». После переключения в «Амплитудная фильтрация звуковой речи» графики изменяют.
На рисунке 2.4.3 показан результат работы программы. Программа работает успешно.


Рисунок 2.4.3 Окно нормализации и спектрограммы репродуктивной и продуктивной речи.
На рисунке 2.4.4 показан результат работы программы при Фильтрации помехах для этого, нужно выбрать пункт меню «фильтр звука». В качестве шума использовался искусственно созданный стационарный шум, возникший в результате действия нескольких независимых источников: шум людей, шум работающего двигателя автомобиля и другие окружающие шумы.


Рисунок 2.4.4 Окно после фильтрации репродуктивной и продуктивной речи.


Рисунок 2.4.4 Окно после темпо-ритмого анализа репродуктивной и продуктивной речи.


Рисунок 2.4.4 Окно сравнения графики с репродуктивной и продуктивной речью.
ГЛАВА 3. НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ РАССМАТРИВАЕМОГО В ДИПЛОМНОЙ РАБОТЕ ПРЕДМЕТА ИССЛЕДОВАНИЯ
3.1. Проблемы, возникающие в действии рассматриваемого предмета исследования
Во время выполнения дипломной работы возникли некоторые сложности в действии рассматриваемого предмета исследования
Цифровое представление звука ценно прежде всего возможностью бесконечного хранения и тиражирования без потери качества, однако преобразование из аналоговой формы в цифровую и обратно все же неизбежно приводит к частичной его потере. Наиболее неприятные на слух искажения, вносимые на этапе оцифровки - гранулярный шум, возникающий при квантовании сигнала по уровню из-за округления амплитуды до ближайшего дискретного значения. В отличие от простого широкополосного шума, вносимого ошибками квантования, гранулярный шум представляет собой гармонические искажения сигнала, наиболее заметные в верхней части спектра.
Мощность гранулярного шума обратно пропорциональна количеству ступеней квантования, однако из-за логарифмической характеристики слуха при линейном квантовании (постоянная величина ступени) на тихие звуки приходится меньше ступеней квантования, чем на громкие, и в результате основная плотность нелинейных искажений приходится на область тихих звуков. Это приводит к ограничению динамического диапазона, который в идеале (без учета гармонических искажений) был бы равен соотношению сигнал/шум, однако необходимость ограничения этих искажений снижает динамический диапазон для 16-разрядного кодирования до 50-60 дБ.
Положение могло бы спасти логарифмическое квантование, однако его реализация в реальном времени весьма сложна и дорога.
При восстановлении звука из цифровой формы в аналоговую возникает проблема сглаживания ступенчатой формы сигнала и подавления гармоник, вносимых частотой дискретизации. Из-за неидеальности АЧХ фильтров может происходить либо недостаточное подавление этих помех, либо избыточное ослабление полезных высокочастотных составляющих. Плохо подавленные гармоники частоты дискретизации искажают форму аналогового сигнала (особенно в области высоких частот), что создает впечатление "шероховатого", "грязного" звука.
3.3 Пути совершенствования рассматриваемого предмета
Поскольку любой цифровой сигнал представляется реальной электрической кривой напряжения или тока - его форма так или иначе искажается при любой передаче, а "замороженный" для хранения сигнал (сигналограмма) подвержен деградации в силу обычных физических причин. Все эти воздействия на форму несущего сигнала являются помехами, которые до определенной величины не изменяют информационного содержания сигнала, как отдельные искажения и выпадения букв в словах обычно не мешают правильному пониманию этих слов, причем избыточность информации, как и увеличение длины слов, повышает вероятность успешного распознавания.
Другими словами, сам несущий сигнал может искажаться, однако переносимая им информация - закодированный звуковой сигнал - в абсолютном большинстве случаев остается неизменной.
Для того, чтобы качество несущего сигнала не ухудшалось, любая передача полезной звуковой информации - копирование, запись на носитель и считывание с него - обязательно должна включать операцию восстановления формы несущего сигнала, а в идеале - и первичного цифрового вида сигнала информационного, и лишь после этого заново сформированный несущий сигнал может быть передан следующему потребителю. В случае прямого копирования без восстановления (например, обычным переписыванием видеокассеты с цифровым сигналом, полученным при помощи ИКМ-приставки, на обычных видеомагнитофонах) качество цифрового сигнала ухудшается, хотя он по-прежнему полностью содержит всю переносимую им информацию. Однако после многократного последовательного копирования или длительного хранения качество ухудшается настолько, что начинают возникать неисправимые ошибки, необратимо искажающие переносимую сигналом информацию. Поэтому копирование и передачу цифровых сигналов необходимо вести только в цифровых устройствах, а при хранении на носителях - своевременно "освежать" не дожидаясь необратимой деградации (для магнитных носителей этот срок оценивается в несколько лет). Правильно переданная или обновленная цифровая сигналограмма качества не теряет и может копироваться и существовать вечно в абсолютно неизменном виде.
Тем не менее, не следует забывать, что корректирующая способность любого кода конечна, а реальные носители далеки от идеальных, поэтому возникновение неисправимых ошибок - на такая уж редкая вещь, особенно при неаккуратном обращении с носителем. При чтении с новых и правильно хранимых DAT-кассет или компакт-дисков в качественных и надежных аппаратах таких ошибок практически не возникает, однако при старении, загрязнении и повреждении носителей и считывающих систем их становится больше. Одиночная неисправленная ошибка почти всегда незаметна на слух благодаря интерполяции, однако она приводит к искажению формы исходного звукового сигнала, а накопление таких ошибок со временем начинает ощущаться и на слух.
Отдельную проблему составляет сложность регистрации неисправленных ошибок, а также проверки идентичности оригинала и копии. Чаще всего конструкторы цифровых звуковых устройств, работающих в реальном времени, не озабочены вопросом точной проверки достоверности передачи, считая вполне достаточными меры, принятые для коррекции ошибок. Невозможность в общем случае повторной передачи ошибочного отсчета или блока приводит к тому, что интерполяция происходит скрытно и после копирования нельзя с уверенностью сказать, точно ли скопирован исходный сигнал. Индикаторы ошибки, имеющиеся в ряде устройств, обычно включаются только в момент ее возникновения, и в случае одиночных ошибок их срабатывание легко может остаться незамеченным. Даже в системах на основе персональных компьютеров чаще всего нет возможности контролировать правильность приема по цифровому интерфейсу или прямого считывания CD; выходом является только многократное повторение операции и сравнение результатов.


ЗАКЛЮЧЕНИЕ
В результате дипломной работы была разработана и реализована система обработки и фильтрации звукового сигнала в составе системы обработки аудиоинформации а также был произведен обзор литературы с целью поиска существующих методов анализа речи. Были реализованы и разработаны алгоритмы, позволяющие сделать нормализацию исходного звукового сигнала. Были реализованы следующие методы обработки и фильтрации звукового сигнала: амплитудная фильтрация звуковой речи, темпо-ритмовый анализ звука ,построение спектрограммы.
В результате дипломной работы была разработана программная оболочка, позволяющая осуществить сравнение графиков репродуктивной и продуктивной речи.
Разработанная подсистема является важной частью системы обработки аудиоинформации, предназначенной для обработки и сравнения репродуктивной и продуктивной речи. Обработка позволяет построить амплитудную характеристику исходного звукового сигнала для получения необходимых характеристик его звучания.
Разработанная подсистема применяется к звуковым сигналам для их подготовки к графическому представлению, в соответствующей подсистеме.
Созданную систему нужно рассматривать как исследовательскую работу, предназначенную для выявления эмпирических закономерностей в предметной области и дальнейшей разработку в направлении большей автоматизации процесса обработки звуковых сигналов.

СПИСОК ЛИТЕРАТУРЫ

Аммерал Л. Принципы программирования в машинной графике. - М.: Сол Систем, 1992.
Крамер Г. Математические методы статистики. – М.: Мир, 2005.
Строустрап Б. Язык программирования С++. – М.: Мир, 2004. – 248 с.
Кнут Д. Искусство программирования для ЭВМ. - М.: Мир, 2006. – Т. 1-2..
Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. - М.: Наука, 2009. – 740с.
Искусственный интеллект. Системы общения и экспер тные системы. Кн. 1 / Под ред. Э.В.Попова. - М.: Радио и связь, 2000. - 461 с.
Оппенгейн А.В., Шафер Р.В. Цифровая обработка сигналов, М.: Радио и связь, 2009 ., 347 с.
Рабинер Л.Р. Шафер Р.В. Цифровая обработка речевых сигналов, М.: Радио и связь, 2001 ., 258 с.
Литюк В.И. Методическое пособие № 2231 часть 3 «Методы расчета и проектирование цифровых многопроцессорных устройств обработки радиосигналов», Таганрог, 2005, 48 с.
Кузнецов В., Отт А. Автоматический синтез речи. - Таллинн: Валгус, 2009. - 135 с.
Методы автоматического распознавания речи / Под ред. У.Ли. - М.: Мир, 2002. - 716 с.
Зиндер Л.Р. Общая фонетика. - М.: Высшая школа, 1979. - 312 с.
Златоустова Л.В., Потапова Р.К., Трунин-Донской В.Н. Общая и прикладная фонетика. М.: МГУ, 2006. - 304 с.




ПРИЛОЖЕНИЕ

1. Листинг программы
1.1) Main.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using CleanToneEngine;
using FMOD;
namespace FMODSpectrum
{
public partial class MainFrm : Form
{
private CT_FMODWrapper SndEngine;
private CT_FMODWrapper SndEngine2;
private Sound MainSnd;
private Sound MainSnd2;

private Graphics Gr;
private Graphics Gr2;
private Graphics Grr;
private Graphics Grr2;

public MainFrm()
{
InitializeComponent();
}
/**
* Загрузки звукого файлов
*/
private void loadFile() {

}
/**
*
*Загрука главной модули.
*/

private void Form1_Load(object sender, EventArgs e)
{

SetUpEnvironnement();

}

private void SetUpEnvironnement()
{
//this.Hide();

this.FormBorderStyle = FormBorderStyle.None;

//this.Width = 512;
//this.Height = 256;

pbSpectrum.Top = 21;
pbSpectrum.Left = 28;

pbSpectrum.Width = 512;
pbSpectrum.Height = 136;

pbWaveOsci.Top = 136;
pbWaveOsci.Left = 28;

pbWaveOsci.Width = 512;
pbWaveOsci.Height = 128;

// для репродутивной речью
pbSpectrum2.Top = 21;
pbSpectrum2.Left = 28;

pbSpectrum2.Width = 512;
pbSpectrum2.Height = 136;

pbWaveOsci2.Top = 136;
pbWaveOsci2.Left = 28;

pbWaveOsci2.Width = 512;
pbWaveOsci2.Height = 128;

this.CenterToScreen();
this.FormBorderStyle = FormBorderStyle.Fixed3D;

this.Show();
}
/**
* При закрытие приложение
*/
void MainFrm_FormClosing(object sender, FormClosingEventArgs e)
{
if (SndEngine != null)
{
SndEngine.DestroySound(ref MainSnd);
SndEngine.Dispose();
}

if (SndEngine2 != null)
{
SndEngine2.DestroySound(ref MainSnd2);
SndEngine2.Dispose();
}

if (Gr != null)
{
Gr.Dispose();
Gr = null;
}

if (Gr2 != null)
{
Gr2.Dispose();
Gr2 = null;
}

if (Grr != null)
{
Grr.Dispose();
Grr = null;
}

if (Grr2 != null)
{
Grr2.Dispose();
Grr2 = null;
}
}

/**
*
* Обновление графики
*/
private void tmRefresh_Tick(object sender, EventArgs e)
{
try
{
Gr.Clear(Color.Black);
SndEngine.SetSpectrumValue(pbSpectrum.Width);

for (int i = 0; i < pbSpectrum.Width; i++)
{
Gr.DrawLine(Pens.Blue, i, pbSpectrum.Height, i, pbSpectrum.Height - (int)(SndEngine.GetSpectrumHeight(i) * 10));
}

Gr2.Clear(Color.Black);
SndEngine.SetWaveData(pbWaveOsci.Width);

for (int i = 0; i < pbWaveOsci.Width; i++)
{
Gr2.DrawRectangle(Pens.Red, i, pbWaveOsci.Height / 2 + (int)(SndEngine.GetWaveHeight(i) * 100), 1, 1);
}

//Для репродуктивной речи

Grr.Clear(Color.Black);
SndEngine2.SetSpectrumValue(pbSpectrum2.Width);

for (int i = 0; i < pbSpectrum2.Width; i++)
{
Grr.DrawLine(Pens.Blue, i, pbSpectrum2.Height, i, pbSpectrum2.Height - (int)(SndEngine2.GetSpectrumHeight(i) * 10));
}

Grr2.Clear(Color.Black);
SndEngine2.SetWaveData(pbWaveOsci2.Width);

for (int i = 0; i < pbWaveOsci2.Width; i++)
{
Grr2.DrawRectangle(Pens.Red, i, pbWaveOsci2.Height / 2 + (int)(SndEngine.GetWaveHeight(i) * 100), 1, 1);
}

Application.DoEvents();
}
catch (Exception ex)
{
MessageBox.Show("error occcured" + ex);
}
}

private void pbWaveOsci_Click(object sender, EventArgs e)
{

}

/**
* Открыть продуктивный файл
*/
private void openFile_pro_Click(object sender, EventArgs e)
{
OFD1.Filter = "Типы файла : *.wav,*.mp3|*.wav;*.mp3";
OFD1.ShowDialog();
this.filepro.Text = OFD1.FileName;
}

private void openFileRepro_Click(object sender, EventArgs e)
{
OFD2.Filter = "Типы файла : *.wav,*.mp3|*.wav;*.mp3";
OFD2.ShowDialog();
this.fileRepro.Text = OFD2.FileName;
}

private void filepro_TextChanged(object sender, EventArgs e)
{

}

/// <summary>
/// Сравнения файлов
/// </summary>
/// <param name="Wave1">ref. to processor object</param>
/// <param name="Wave2">ref. to processor object</param>
/// <returns>True/False</returns>
private String Compare(ref CT_FMODWrapper Wave1, ref CT_FMODWrapper Wave2)
{
Boolean eq;
if (Wave1.Channels != Wave2.Channels) eq= false;
if (Wave1.BitsPerSample != Wave2.BitsPerSample) eq= false;
if (Wave1.SampleRate != Wave2.SampleRate) eq= false;
eq = true;

compareTxt.Text = "Характеристики графики звука с продуктивной речью \n";
compareTxt.Text += "Количество каналов :+"+ Wave1.Channels +" (mono)\n";
compareTxt.Text += "Аудио Размер выборки :" + Wave1.DataLength + " бит\n";
compareTxt.Text += "Скорость передачи данных:+" + Wave1.BitsPerSample + " kbps\n";
compareTxt.Text += "Аудио дискретизации:+" + Wave1.SampleRate + "\n";
compareTxt.Text += "Аудио форматы: PCM\n";
//compareTxt.Text += "Аудио Амплитуды:+" + Wave1 + "\n";

compareTxt.Text = "Характеристики графики звука с репродуктивной речью \n";
compareTxt.Text += "Количество каналов :+" + Wave2.Channels + " (mono)\n";
compareTxt.Text += "Аудио Размер выборки :+" + Wave2.DataLength + " бит\n";
compareTxt.Text += "Скорость передачи данных:+" + Wave2.BitsPerSample + " kbps\n";
compareTxt.Text += "Аудио дискретизации:+" + Wave2.SampleRate + "\n";
compareTxt.Text += "Аудио форматы: PCM\n";
//compareTxt.Text += "Аудио Амплитуды:+" + Wave1 + "\n";

return compareTxt.Text.ToString();

}


private void start_Click(object sender, EventArgs e)
{

if (OFD1.FileName != "")
{
//создаем экземпляр класса CT_FMODWrapper
SndEngine = new CT_FMODWrapper();
MainSnd = SndEngine.CreateSound(OFD1.FileName, CT_FMODWrapper.CTSoundType.Stream);
SndEngine.WaveHeaderIN(OFD1.FileName);
SndEngine.PlaySound(ref MainSnd);

Gr = pbSpectrum.CreateGraphics();
Gr2 = pbWaveOsci.CreateGraphics();

tmRefresh.Enabled = true;
this.groupBox1.Visible = true;
//this.FormClosing += new FormClosingEventHandler(MainFrm_FormClosing);
}
else
{
MessageBox.Show(this,"Файл с продуктивной речью не введен","Ощибка",MessageBoxButtons.RetryCancel);
}

if (OFD2.FileName != "")
{
SndEngine2 = new CT_FMODWrapper();
MainSnd2 = SndEngine2.CreateSound(OFD2.FileName, CT_FMODWrapper.CTSoundType.Stream);

SndEngine2.PlaySound(ref MainSnd2);
SndEngine2.WaveHeaderIN(OFD2.FileName);
Grr = pbSpectrum2.CreateGraphics();
Grr2 = pbWaveOsci2.CreateGraphics();

tmRefresh.Enabled = true;
this.groupBox2.Visible = true;
this.FormClosing += new FormClosingEventHandler(MainFrm_FormClosing);
}
else
{
MessageBox.Show(this, "Файл с репродуктивной речью не введен", "Ощибка", MessageBoxButtons.RetryCancel);
}

this.Compare(ref SndEngine, ref SndEngine2);
}

private void menuItem2_Click(object sender, EventArgs e)
{

}
}
}

1.2) FMODWaveOut.cs
using System;
using System.Collections.Generic;
using System.Text;

using System.Runtime.InteropServices;
using FMOD;
using System.IO;


namespace CleanToneEngine
{
public class CT_FMODWrapper
{
#region Enum & GlobalVars
public enum CTSoundType : int
{
Sound = 0, Stream = 1
}

private FMOD.System SndCore = null;
// Public Fields can be used for various operations
public int Length;
public short Channels;
public int SampleRate;
public int DataLength;
public short BitsPerSample;
public ushort MaxAudioLevel;
private Channel cChannel = null;

private float[] Spectrum = new float[512];
private float[] WaveData = new float[512];
#endregion

#region Construcor & Destructor
public CT_FMODWrapper()
{
Factory.System_Create(ref SndCore);
SndCore.init(32, FMOD.INITFLAG.NORMAL, (IntPtr)null);
}

public void Dispose()
{
SndCore.close();
SndCore.release();
}
#endregion

#region Common Functions
public void SetLoop(bool bValue, Sound Snd)
{

if (bValue == true)
{
Snd.setMode(FMOD.MODE.LOOP_NORMAL);
}
else
{
Snd.setMode(FMOD.MODE.LOOP_OFF);
}

}

#region Volume
public void SetVolume(float fValue)
{
cChannel.setVolume(fValue);
}

public float GetVolume()
{
float fBuffer = 0.0f;
cChannel.getVolume(ref fBuffer);

return fBuffer;
}
#endregion
#endregion

#region Spectrum Data
public float GetSpectrumHeight(int iFrequency)
{
if (iFrequency <= Spectrum.Length)
{
return Spectrum[iFrequency] * 1000;
}

return -1;
}

public void SetSpectrumValue(int iMax)
{
// !!!
// The spectrum data are only available for Streamed Sounds
SndCore.getSpectrum(Spectrum, iMax, 0, FMOD.DSP_FFT_WINDOW.TRIANGLE);
}
#endregion

#region WaveData
public void SetWaveData(int iMax)
{
SndCore.getWaveData(WaveData, iMax, 0);
}

public float GetWaveHeight(int Offset)
{
if (Offset <= 512)
{
return WaveData[Offset];
}

return -1;
}
/// <summary>
/// Read the wave file header and store the key values in public variable.
/// Adapted from - Concatenation Wave Files using C# 2005 by By Ehab Mohamed Essa
/// </summary>
/// <param name="strPath">The physical path of wave file incl. file name for reading</param>
/// <returns>True/False</returns>
public bool WaveHeaderIN(string strPath)
{
if (strPath == null) strPath = "";
if (strPath == "") return false;

FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read);

System.IO.BinaryReader br = new BinaryReader(fs);
try
{
Length = (int)fs.Length - 8;
fs.Position = 22;
Channels = br.ReadInt16(); //1
fs.Position = 24;
SampleRate = br.ReadInt32(); //8000
fs.Position = 34;
BitsPerSample = br.ReadInt16(); //16
DataLength = (int)fs.Length - 44;
byte[] arrfile = new byte[fs.Length - 44];
fs.Position = 44;
fs.Read(arrfile, 0, arrfile.Length);
}
catch
{
return false;
}
finally
{
br.Close();
fs.Close();
}
return true;
}
#endregion

#region SoundObject functions
public Sound CreateSound(string sFilename, CTSoundType Mode)
{

Sound sndBuffer = null;

switch (Mode)
{
case CTSoundType.Sound:
SndCore.createSound(sFilename, FMOD.MODE.HARDWARE, ref sndBuffer);
break;

case CTSoundType.Stream:
SndCore.createStream(sFilename, FMOD.MODE.SOFTWARE | FMOD.MODE._2D, ref sndBuffer);
break;
}
return sndBuffer;
}

public void DestroySound(ref Sound Snd)
{
Snd.release();
Snd = null;
}

public void PlaySound(ref Sound Snd)
{
SndCore.playSound(CHANNELINDEX.FREE, Snd, false, ref cChannel);

}
#endregion

}
}

1.4) AudioFrame.cs
;








1


2

СПИСОК ЛИТЕРАТУРЫ

1. Аммерал Л. Принципы программирования в машинной графике. - М.: Сол Систем, 1992.
2. Крамер Г. Математические методы статистики. – М.: Мир, 2005.
3. Строустрап Б. Язык программирования С++. – М.: Мир, 2004. – 248 с.
4. Кнут Д. Искусство программирования для ЭВМ. - М.: Мир, 2006. – Т. 1-2..
5. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. - М.: Наука, 2009. – 740с.
6. Искусственный интеллект. Системы общения и экспертные системы. Кн. 1 / Под ред. Э.В.Попова. - М.: Радио и связь, 2000. - 461 с.
7. Оппенгейн А.В., Шафер Р.В. Цифровая обработка сигналов, М.: Радио и связь, 2009 ., 347 с.
8. Рабинер Л.Р. Шафер Р.В. Цифровая обработка речевых сигналов, М.: Радио и связь, 2001 ., 258 с.
9. Литюк В.И. Методическое пособие № 2231 часть 3 «Методы расчета и проектирование цифровых многопроцессорных устройств обработки радиосигналов», Таганрог, 2005, 48 с.
10. Кузнецов В., Отт А. Автоматический синтез речи. - Таллинн: Валгус, 2009. - 135 с.
11. Методы автоматического распознавания речи / Под ред. У.Ли. - М.: Мир, 2002. - 716 с.
12. Зиндер Л.Р. Общая фонетика. - М.: Высшая школа, 1979. - 312 с.
13. Златоустова Л.В., Потапова Р.К., Трунин-Донской В.Н. Общая и прикладная фонетика. М.: МГУ, 2006. - 304 с.

Труды Л. А. Венгрус [22, 23], без сомнения, являются принципиально новый, более высокий уровень теоретической и методологической базой осознания проблемы музыкального образования в целом. Все интегративности и системности, предложенные в этих работах подход, вокально-педагогического характера в отношении языка и рекомендаций-это очень традиционно. Упражнения сложно, в музыку и в них (кроме стаккатирования) не поставил ни один алгоритм или вызвать.

Интересно отметить, что в большинстве научно-методических источников по вопросам технологии передачи голоса заслоняют технологии эстетики пения настолько, что создается впечатление: если есть певческий тон - все остальное происходит само по себе-сам. Действительно, бывает и так, но, к сожалению, очень редко. Кстати, количество выдающихся или просто хороших певцов автоматически равно будет число людей, с профессиональным голосов. Для того, чтобы установить, когда явка форме технологии эстетики пения требуется глубокая включенность субъекта традиции. Очевидно, что это возможно только тогда, когда господство традиции в этом обществе. Просто, если с детства человек слушает пение хорошее, и он записал голос, то существует вероятность того, что таковой включенности. Кроме того, очевидно, что, если у вас есть разнообразие вариантов голоса для того, чтобы сделать музыку в средствах массовой информации в наше время, вероятность значительно снижается и приближается к нулю. Все это обосновывает необходимость второго направления КТЭ - технологии эстетики пения. Тем не менее, этот вопрос рассматривался некоторыми авторами отдельно на самом деле голос.

В начале XX века К. М. Мазурин считал необходимым разграничение функций педагогов - технолог и эстетики - "музыкально-певческий консультант" или даже три: директор голоса, эстетики и музыкант [9]. Но эта идея оказалась довольно старый, в буквальном смысле слова: в хрестоматии И. К. Назаренко "Искусство пения" он говорит: "...о существовании в Древнем Риме, преподавателей пения трех категорий: 1) vociferarri - занимавшихся расширением границ диапазона и развитием силы голоса; 2) phonasci - работали более далее для улучшения качества голоса (учителя вокального резонанса); 3) vocales - учивших правильной интонации и художественным оттенков (вокальной эстетике)" (107, c. 11).

Выдающийся грузинский певец и педагог.- Н.D. Андгуладзе убежден, что "...представляется целесообразным изучить вокальную технику в двух противоположных направлениях, для определить его, две взаимосвязанные, но обращенные в разные стороны ипостаси: а) физиолого-акустической, в случае, если техника остается администрирования функции; и б) эстетика, в случае, если они должны понимать, что органический компонент художественного творчества изображения на всех иерархических уровнях обучения" (3, c. 113).

Узнать стоимость работы