Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 114276
Дата создания 2011
Страниц 69
Источников 13
Мы сможем обработать ваш заказ (!) 26 апреля в 16:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
6 740руб.
КУПИТЬ

Содержание

Оглавление
ВВЕДЕНИЕ
ГЛАВА 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

Список литературы [ всего 13]

СПИСОК ЛИТЕРАТУРЫ
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 с.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00997
© Рефератбанк, 2002 - 2024