ISpVoice -> ISpStream -> IStream -> char*
Как и обычный прямой метод ISpVoice::Speak, он завершается успешно, но необработанные аудиоданные содержат ошибки. Я не уверен, почему это происходит, потому что, похоже, я использую тот же формат волны, который использует SpMMAudioOut, и я предполагаю, что ISpVoice использует внутренне:
- Частота дискретизации 44,1 кГц
- 16 бит на выборку
- 2 канала
- Кодировка: 16-битный PCM со знаком
- Порядок байтов: прямой порядок байтов
- Каналы: 2 канала
- Частота дискретизации: 44100
На этом снимке экрана ниже вы можете видеть, что для выбранных 10 486 сэмплов по всему сегменту разбросаны пики, из-за чего он звучит «царапливо». Однако между произнесенными предложениями в паузах нет всплесков (я использовал строки из стихотворения Шекспира).

Я неправильно выполняю преобразование формата, или это внутренняя ошибка в механизме преобразования текста в речь Microsoft?
В настоящее время я тестирую и отлаживаю это внутри VirtualBox, при этом виртуальная машина работает под управлением Windows 11 (версия 25H2, сборка 26200.7840), а на хосте работает EndeavourOS (где я использую Audacity для импорта необработанных данных). Для компиляции программы я использовал MSVC 2022.
Подробнее здесь: https://stackoverflow.com/questions/798 ... is-glitchy
Мобильная версия