Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
7 / 3 / 2
Регистрация: 04.11.2012
Сообщений: 218

Распознавание речи через SAPI

01.11.2014, 11:19. Показов 2216. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот, написал я функцию для распознавания речи. Всё работает. НО, работает только с английским. Как я понял, английский это 409, а русский это 419 в значениях реестра. Как мне выбрать русский язык? Ил может что-то в самом реестре поменять?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
LPCWSTR Recognize(){
    LPWSTR pszText;
    HANDLE hEvent;
    LPMSG msg = NULL;
    SPPHRASE *pParts;
    HRESULT hr;
    CSpEvent evt;
    ISpPhrase *pPhrase;
    ULONGLONG ullEvents;
    CComPtr <ISpRecognizer> cpEngine;
    CComPtr <ISpRecoContext> cpRecoCtx;
    CComPtr <ISpRecoGrammar> cpGram;
    CComPtr <ISpObjectToken> cpObjectToken;
    CComPtr<IEnumSpObjectTokens>   cpEnum;
    ULONG ulCount = 0;
 
    if (SUCCEEDED(CoInitialize(NULL))) {
        //SpEnumTokens(SPCAT_RECOGNIZERS, L"Language=419", NULL, &cpEnum);
        SpFindBestToken(SPCAT_RECOGNIZERS, L"Language=419", NULL, &cpObjectToken);
        
        hr = cpEngine.CoCreateInstance(CLSID_SpSharedRecognizer);
        cpEngine->SetRecognizer(cpObjectToken);
        hr = cpEngine->CreateRecoContext(&cpRecoCtx);
        
        hr = cpRecoCtx->SetNotifyWin32Event();
        hEvent = cpRecoCtx->GetNotifyEventHandle();
        ullEvents = SPFEI(SPEI_RECOGNITION) | SPFEI(SPEI_FALSE_RECOGNITION);
        hr = cpRecoCtx->SetInterest(ullEvents, ullEvents);
 
        hr = cpRecoCtx->CreateGrammar(1, &cpGram);
        hr = cpGram->LoadDictation(NULL, SPLO_DYNAMIC);
        hr = cpGram->SetDictationState(SPRS_ACTIVE);
 
        while (!done){
            WaitForSingleObject(hEvent, 7000);
            while (evt.GetFrom(cpRecoCtx) == S_OK){
                if (evt.eEventId == SPEI_FALSE_RECOGNITION) return NULL;
                else{
                    pPhrase = evt.RecoResult();
                    hr = pPhrase->GetPhrase(&pParts);
                    hr = pPhrase->GetText(SP_GETWHOLEPHRASE, SP_GETWHOLEPHRASE, FALSE, &pszText, 0);
                    std::wcout << pszText;
                    CoTaskMemFree(pParts);
                    CoTaskMemFree(pszText);
                }
            }
        }
        cpGram.Release();
        cpRecoCtx.Release();
        cpEngine.Release();
        CoUninitialize();
    }
    return NULL;
}
Помогите, кто с этим работал и сталкивался, пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2014, 11:19
Ответы с готовыми решениями:

Распознавание речи(+ команд)
привет!!) вопрос такой - при помощи чего можно распознавать речь, какие есть варианты?? интересует реализация прежде всего...

Запуск программы с sapi на другом пк
У меня есть программа с использованием SAPI, переводящая текст в речь. Так вот, у меня все отлично работает, но переношу на другой пк и там...

Sapi, синтез русской речи
Использую sapi sdk 5.1 По умолчанию в системе установлен только английский голос. Код: HRESULT hr =...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2014, 11:19
Помогаю со студенческими работами здесь

Распознавание речи
Можно ли микроконтроллером авр распознавать речь? Хотя бы одно слово. В интернете ничего вменяемого не нашел. Теорию читал немного,...

Распознавание речи
извените что не по теме! Нужна ваша помощь. как в делфи написать программу которая будет делать следующее: в микрофон говорим...

Распознавание речи
Пожалуйста помогите как распознавать звук в языке C#_2010. У меня курсовая работа срок до 15.09.2013г :

Распознавание речи
Привет. Есть такой вопрос: Прикручиваю к своему приложению на андроид (Xamarin.Forms) распознование речи. До этого в Windows Forms...

Распознавание речи
Пожалуйста помогите как распознавать звук в языке VB_6.0. У меня курсовая работа срок до 15.09.2013г :


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru