Audio Toolbox™ позволяет вам взаимодействовать через интерфейс со сторонними API речи в тексте от MATLAB®.
Чтобы взаимодействовать через интерфейс со сторонними API речи в тексте, у вас должно быть следующее:
Релиз R2017a Audio Toolbox или выше
Audio Toolbox расширил функциональность, доступную от Обмена файлами
Одни из следующих API:
Сторонние API требуют, чтобы вы сгенерировали ключи в идентификационных целях. Чтобы начаться, загрузите расширенную функциональность Audio Toolbox с Обмена файлами. Затем следуйте инструкциям для взаимодействия через интерфейс с вашим выбранным сторонним API речи в тексте.
Перейдите к speech2text функциональности на Обмене файлами, загрузите файлы, и затем извлеките содержимое архива к вашей рабочей области. Загрузка содержит:
speechClient
– Объект, который задает, с каким сторонним API соединить интерфейсом с, и дополнительные свойства, которые задают интерфейс, которые характерны для стороннего API.
speech2text
– Функция, которая берет в качестве входа звуковой сигнал в MATLAB и возвращает текст и дополнительную информацию, как записано через сторонний интерфейс.
Чтобы взаимодействовать через интерфейс с Google Speech из MATLAB, необходимо сначала создать учетную запись с Google Speech и сгенерировать авторизационный ключ. Следующие шаги описывают, как создать авторизационный ключ. Шаги также описаны в документации Google.
Перейдите к APIs & Services-> панель Учетных данных в Консоли Облачной платформы.
Выберите Create credentials
, затем выберите API key
из выпадающего меню.
Нажмите кнопку Create. Диалоговое окно отображается ваш недавно созданный ключ.
Если вы имеете авторизационный ключ API, создаете файл JSON:
Добавьте следующее содержимое в файл JSON, заменив yourAuthenticaionKey
на аутентификационный ключ, который вы создали на шаге 3:
{ "key" : "yourAuthenticationKey" }
Назовите файл JSON Google_Credentials_Speech2text.json
и сохраните его в безопасное место.
speechClient
Создайте объект speechClient
взаимодействовать через интерфейс с Google Speech-to-Text API:
transcriber = speechClient('Google')
transcriber = speechClient with no properties.
Можно задать настройку распознавания для речевого клиента Google путем определения пар "имя-значение" во время создания. Например, чтобы создать речевой объект, который говорит, Google переводит сервис, что входная речь является австралийским английским языком, задайте languageCode
как 'en-AU'
.
transcriber = speechClient('Google','languageCode','en-AU')
transcriber = speechClient with properties: languageCode: 'en-AU'
По умолчанию код языка установлен в 'en-US'
.
Объект speechClient
не выполняет входные проверки на парах "имя-значение". Задайте пары "имя-значение", как описано в документации по настройке распознавания Google. Вы не можете установить поля encoding
или sampleRateHertz
с помощью speechClient
. Поле encoding
всегда устанавливается в FLAC, и sampleRateHertz
задан через функцию speech2text
.
Вызовите функцию speech2text
с объектом speechClient
, речь, которую вы хотите записать, и частота дискретизации.
[speech,SampleRate] = audioread('Counting-16-44p1-mono-15secs.wav');
text = speech2text(transcriber,speech,SampleRate)
text = 5×2 table TRANSCRIPT CONFIDENCE _______________________________ __________ "1" 0.79176 " 2" 0.77258 " 3" 0.79722 " 4" 0.73335 " five six seven eight nine 10" 0.89762
Функция speech2text
выводит таблицу, содержащую расшифровку стенограммы и уверенность расшифровки стенограммы. Выходная таблица может содержать дополнительные переменные в зависимости от настройки преобразователя. Например, если вы создаете преобразователь, что выходные параметры несколько альтернатив для каждого слова, затем переменная ALTERNATIVES
добавляется к выводу текста:
transcriber = speechClient('Google','languageCode','en-US','maxAlternatives',2); text = speech2text(transcriber,speech,SampleRate)
text = 5×3 table TRANSCRIPT CONFIDENCE ALTERNATIVES _______________________________ __________ ____________ "1" 0.79176 [1×2 table] " 2" 0.77258 [1×2 table] " 3" 0.79721 [1×2 table] " 4" 0.73335 [1×2 table] " five six seven eight nine 10" 0.89762 [1×2 table]
Можно также установить клиентский тайм-аут HTTP для запроса записи путем установки пары "имя-значение" HTTPTimeOut
для speech2text
:
text = speech2text(transcriber,speech,SampleRate,'HTTPTimeOut',25);
Чтобы соединить интерфейсом с IBM с Речью Уотсона из MATLAB, необходимо сначала создать учетную запись с IBM Bluemix и получить имя пользователя и пароль. Следующие шаги описывают, как создать учетную запись. Шаги также описаны в документации IBM.
Перейдите к Речи в текстовом сервисе и зарегистрируйте свободный аккаунт Bluemix или войдите в свой существующий аккаунт.
После того, как вы войдете в систему, введите speech-to-text-tutorial
в поле Service name страницы Speech to Text. Нажмите Create.
Скопируйте созданные учетные данные:
Нажмите Service credentials
Нажмите View credentials под Actions
Скопируйте имя пользователя и пароль
Если вы имеете Сервисные учетные данные, создаете файл JSON:
Добавьте следующее содержимое в файл JSON, заменив yourUserName
и yourPassword
с именем пользователя и паролем, которое вы создали на шаге 3:
{ "key" : "yourUserName", "password" : "yourPassword" }
Назовите файл JSON IBM_Credentials_Speech2text.json
и сохраните его в безопасное место.
speechClient
Создайте объект speechClient
взаимодействовать через интерфейс с API Речи в тексте IBM:
transcriber = speechClient('IBM')
transcriber = speechClient with no properties.
Можно задать настройку распознавания для речевого клиента IBM путем определения пар "имя-значение" во время создания. Например, чтобы создать речевой объект, который говорит, IBM переводит сервис, что входная речь является английской узкополосной связью, задайте model
как 'en-US_NarrowbandModel'
.
transcriber = speechClient('IBM','model','en-US_NarrowbandModel')
transcriber = speechClient with properties: model: 'en-US_NarrowbandModel'
По умолчанию модель языка установлена в 'en-US_BroadbandModel'
.
Объект speechClient
не выполняет входные проверки на парах "имя-значение". Задайте пары "имя-значение", как описано в Речи Уотсона IBM в текстовой ссылке API. То, когда вы задаете частоту дискретизации с помощью speech2text
, IBM переводят сервис, передискретизирует аудио к пропускной способности, заданной model
.
Вызовите функцию speech2text
с объектом speechClient
, речь, которую вы хотите записать, и частота дискретизации.
[speech,SampleRate] = audioread('Counting-16-44p1-mono-15secs.wav');
text = speech2text(transcriber,speech,SampleRate)
text = 6×2 table TRANSCRIPT CONFIDENCE ___________ __________ "five six " 0.98 "so " 0.311 "eight " 0.492 "not " 0.511 "and " 0.501 "ten " 0.248
Функция speech2text
выводит таблицу, содержащую расшифровку стенограммы и уверенность расшифровки стенограммы. Выходная таблица может содержать дополнительные переменные в зависимости от настройки преобразователя. Например, если вы создаете преобразователь, что выходные параметры несколько альтернатив для каждого слова, затем переменная ALTERNATIVES
добавляется к выводу текста. Создайте новый речевой клиент, но на этот раз используйте модель по умолчанию (en-US_BroadbandModel
) и установите max_alternatives
на два. Модель по умолчанию, en-US_BroadbandModel
, выполняет намного лучше, чем en-US_NarrowbandModel
для звукового сигнала в этом примере.
transcriber = speechClient('IBM','max_alternatives',2); text = speech2text(transcriber,speech,SampleRate)
text = 10×3 table TRANSCRIPT CONFIDENCE ALTERNATIVES __________ __________ ____________ "one " 0.994 [1×2 table] "to " 0.995 [1×2 table] "three " 0.971 [1×2 table] "for " 1 [1×2 table] "five " 0.997 [1×2 table] "six " 0.997 [1×2 table] "seven " 0.996 [] "eight " 0.969 [1×2 table] "nine " 0.987 [1×2 table] "then " 0.553 [1×2 table]
Можно также установить клиентский тайм-аут HTTP для запроса записи путем установки пары "имя-значение" HTTPTimeOut
для speech2text
:
text = speech2text(transcriber,speech,SampleRate,'HTTPTimeOut',25);
Чтобы взаимодействовать через интерфейс с Microsoft Azure Speech из MATLAB, необходимо сначала создать ключи подписки. Следующие шаги описывают, как создать учетную запись.
Перейдите к Cognitive Services и зарегистрируйте свободный аккаунт Azure или войдите в свой существующий аккаунт.
После того, как вы войдете в систему от страницы Cognitive Services, нажмите Speech APIs и затем Get API Key для Речи Bing.
Скопируйте созданные ключи.
Если вы имеете ключи, создаете файл JSON:
Добавьте следующее содержимое в файл JSON, заменив yourKey1
и yourKey2
с ключами, которые вы создали на шаге 3:
{ "Key1" : "yourKey1", "Key2" : "yourKey2" }
Назовите файл JSON Microsoft_Credentials_Speech2text.json
и сохраните его в безопасное место.
speechClient
Создайте объект speechClient
взаимодействовать через интерфейс с Microsoft Speech-to-Text API:
transcriber = speechClient('Microsoft')
transcriber = speechClient with no properties.
Можно задать настройку распознавания для речевого клиента Microsoft путем определения пар "имя-значение" во время создания. Например, чтобы создать речевой объект, который говорит, Microsoft переводит сервис, что входная речь является диктовкой, задайте recognition
как 'dictation'
.
transcriber = speechClient('Microsoft','recognition','dictation')
transcriber = speechClient with properties: recognition: 'dictation'
По умолчанию параметр language
устанавливается на en-US
, параметр format
устанавливается на подробный, и параметр recognition
устанавливается на Interactive
.
Объект speechClient
не выполняет входные проверки на парах "имя-значение". Укажите, что пары "имя-значение", как описано в Начинают с распознаванием речи при помощи остальных API.
Вызовите функцию speech2text
с объектом speechClient
, речь, которую вы хотите записать, и частота дискретизации.
[speech,SampleRate] = audioread('SpeechDFT-16-8-mono-5secs.wav');
text = speech2text(transcriber,speech,SampleRate)
text = 5×5 table CONFIDENCE LEXICAL ITN MASKEDITN DISPLAY __________ _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ ________________________________________________________________________________ 0.8549 'the discrete fourier transform of a real valued signal is conjugate cometric' 'the discrete fourier transform of a real valued signal is conjugate cometric' 'the discrete fourier transform of a real valued signal is conjugate cometric' 'The discrete fourier transform of a real valued signal is conjugate cometric.' 0.8369 'the discrete fourier transform of a real valued signal is conjugate symmetric' 'the discrete fourier transform of a real valued signal is conjugate symmetric' 'the discrete fourier transform of a real valued signal is conjugate symmetric' 'The discrete fourier transform of a real valued signal is conjugate symmetric.' 0.8369 'discrete fourier transform of a real valued signal is conjugate cometric' 'discrete fourier transform of a real valued signal is conjugate cometric' 'discrete fourier transform of a real valued signal is conjugate cometric' 'Discrete fourier transform of a real valued signal is conjugate cometric.' 0.81006 'the discrete fourier transform of a real valued signal is conjugates ametric' 'the discrete fourier transform of a real valued signal is conjugates ametric' 'the discrete fourier transform of a real valued signal is conjugates ametric' 'The discrete fourier transform of a real valued signal is conjugates ametric.' 0.81006 'discrete fourier transform of a real valued signal is conjugate symmetric' 'discrete fourier transform of a real valued signal is conjugate symmetric' 'discrete fourier transform of a real valued signal is conjugate symmetric' 'Discrete fourier transform of a real valued signal is conjugate symmetric.'
Функция speech2text
выводит таблицу, содержащую лексическое, ITN, замаскированный, и форма отображения распознанного текста и очки уверенности.
Можно также установить клиентский тайм-аут HTTP для запроса записи путем установки пары "имя-значение" HTTPTimeOut
для speech2text
:
text = speech2text(transcriber,speech,SampleRate,'HTTPTimeOut',25);
Audio Toolbox позволяет вам взаимодействовать через интерфейс со сторонними API речи в тексте. Однако сторонние речевые API не свободны для расширенного использования. Консультируйтесь с отдельной документацией API для оценки деталей: