Сгенерируйте звуковые сигналы

В этом примере показано, как сгенерировать звуковые сигналы с помощью Сеанса. Этот пример использует, но не требует, 5,1 аудиосистем канала.

В этом примере вы генерируете звуковой сигнал с помощью звуковой карты на использующем компьютеры 5,1 настроек динамика канала. Прежде чем вы начнете, проверите, что ваша среда настраивается так, чтобы можно было сгенерировать данные со звуковой картой. Для получения дополнительной информации обратитесь к "Поиску и устранению проблем в Data Acquisition Toolbox".

Загрузите звуковой сигнал

Загрузите звуковой файл, содержащий выборку "Хора Аллилуйи Генделя".

load handel;

Постройте звуковой сигнал

Отобразите данные на графике для того, чтобы идентифицировать пять отличных сегментов. Каждый сегмент представляет "Аллилуйю" в хоре. Сегменты аннотируются как 1 - 5.

ly = length(y);
lspan = 1:ly;
t = lspan/Fs;

hf = figure;
plot(t,y./max(y))
axis tight;
title('Signal (Handel''s Hallelujah Chorus) vs Time');
xlabel('Time (s)');
ylabel('Amplitude');

markers = struct('xpos',[0.2,0.4,0.55,0.65,0.8],'string',num2str([1:5]'));
for i = 1:5,
    annotation(hf,'textbox',[markers.xpos(i) 0.48 0.048 0.080],'String', markers.string(i),'BackgroundColor','w','FontSize',16);
end

Просмотрите все доступные аудио устройства

d = daq.getDevices
d = 

Data acquisition devices:

index   Vendor    Device ID                            Description                           
----- ----------- --------- -----------------------------------------------------------------
1     directsound Audio0    DirectSound Primary Sound Capture Driver
2     directsound Audio1    DirectSound Microphone (High Definition Audio Device)
3     directsound Audio2    DirectSound HP 4120 Microphone (2- HP 4120)
4     directsound Audio3    DirectSound Microphone (Plantronics .Audio 400 DSP)
5     directsound Audio4    DirectSound Digital Audio (S/PDIF) (High Definition Audio Device)
6     directsound Audio5    DirectSound Primary Sound Driver
7     directsound Audio6    DirectSound Speakers (Plantronics .Audio 400 DSP)
8     directsound Audio7    DirectSound HP 4120 (2- HP 4120)
9     directsound Audio8    DirectSound Speakers (High Definition Audio Device):1
10    directsound Audio9    DirectSound Speakers (High Definition Audio Device):2

Этот пример использует 5,1 аудиосистем канала с устройством ID 'Audio8'.

dev = d(9)
dev = 

directsound: DirectSound Speakers (High Definition Audio Device):1 (Device ID: 'Audio8')
   Audio output subsystem supports:
      -1.0 to +1.0  range
      Rates from 80.0 to 1000000.0 scans/sec
      8 channels ('1' - '8')
      'Audio' measurement type
   


Создайте аудио сеанс

1. Создайте сеанс с directsound как поставщик и добавляют канал аудиовыхода в него.

s = daq.createSession('directsound');
noutchan = 6;
addAudioOutputChannel(s, dev.ID, 1:noutchan);

2. Обновите уровень сеанса, чтобы совпадать с уровнем выборки аудио.

s.Rate = Fs

3. Поставьте ту же форму волны в очередь ко всем доступным каналам/динамикам. Если дополнительный, различная речь доступна, они должны быть поставлены в очередь к соответствующим каналам.

queueOutputData(s,repmat(y,1,noutchan));

4. Запустите приоритетную генерацию. Необходимо услышать выборку "Хора Аллилуйи Генделя". "Аллилуйя" должна быть озвучена пять раз, один для каждого сегмента, изображенного в фигуре по всем каналам акустической системы.

startForeground(s);

5. Закройте фигуру.

close(hf);
s = 

Data acquisition session using DirectSound hardware:
   No data queued.  Will run at 8192 scans/second.
   Number of channels: 6
      index Type Device Channel MeasurementType     Range     Name
      ----- ---- ------ ------- --------------- ------------- ----
      1     audo Audio8 1       Audio           -1.0 to +1.0
      2     audo Audio8 2       Audio           -1.0 to +1.0
      3     audo Audio8 3       Audio           -1.0 to +1.0
      4     audo Audio8 4       Audio           -1.0 to +1.0
      5     audo Audio8 5       Audio           -1.0 to +1.0
      6     audo Audio8 6       Audio           -1.0 to +1.0