Запись речи в тексте

Audio Toolbox™ позволяет вам взаимодействовать через интерфейс со сторонними API речи в тексте от MATLAB®.

Чтобы взаимодействовать через интерфейс со сторонними API речи в тексте, у вас должно быть следующее:

Сторонние API требуют, чтобы вы сгенерировали ключи в идентификационных целях. Чтобы начаться, загрузите расширенную функциональность Audio Toolbox с Обмена файлами. Затем следуйте инструкциям для взаимодействия через интерфейс с вашим выбранным сторонним API речи в тексте.

Загрузите расширенную функциональность Audio Toolbox с обмена файлами

Перейдите к speech2text функциональности на Обмене файлами, загрузите файлы, и затем извлеките содержимое архива к вашей рабочей области. Загрузка содержит:

  • speechClient – Объект, который задает, с каким сторонним API соединить интерфейсом с, и дополнительные свойства, которые задают интерфейс, которые характерны для стороннего API.

  • speech2text – Функция, которая берет в качестве входа звуковой сигнал в MATLAB и возвращает текст и дополнительную информацию, как записано через сторонний интерфейс.

Интерфейс с Google Speech

Получите Google Speech Authentication Keys

Чтобы взаимодействовать через интерфейс с Google Speech из MATLAB, необходимо сначала создать учетную запись с Google Speech и сгенерировать авторизационный ключ. Следующие шаги описывают, как создать авторизационный ключ. Шаги также описаны в документации Google.

  1. Перейдите к APIs & Services-> панель Учетных данных в Консоли Облачной платформы.

  2. Выберите Create credentials, затем выберите API key из выпадающего меню.

  3. Нажмите кнопку Create. Диалоговое окно отображается ваш недавно созданный ключ.

  4. Если вы имеете авторизационный ключ 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 речь Уотсона

Получите IBM речевые сервисные учетные данные Уотсона

Чтобы соединить интерфейсом с IBM с Речью Уотсона из MATLAB, необходимо сначала создать учетную запись с IBM Bluemix и получить имя пользователя и пароль. Следующие шаги описывают, как создать учетную запись. Шаги также описаны в документации IBM.

  1. Перейдите к Речи в текстовом сервисе и зарегистрируйте свободный аккаунт Bluemix или войдите в свой существующий аккаунт.

  2. После того, как вы войдете в систему, введите speech-to-text-tutorial в поле Service name страницы Speech to Text. Нажмите Create.

  3. Скопируйте созданные учетные данные:

    1. Нажмите Service credentials

    2. Нажмите View credentials под Actions

    3. Скопируйте имя пользователя и пароль

  4. Если вы имеете Сервисные учетные данные, создаете файл 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

Получите ключи API Microsoft Azure Speech

Чтобы взаимодействовать через интерфейс с Microsoft Azure Speech из MATLAB, необходимо сначала создать ключи подписки. Следующие шаги описывают, как создать учетную запись.

  1. Перейдите к Cognitive Services и зарегистрируйте свободный аккаунт Azure или войдите в свой существующий аккаунт.

  2. После того, как вы войдете в систему от страницы Cognitive Services, нажмите Speech APIs и затем Get API Key для Речи Bing.

  3. Скопируйте созданные ключи.

  4. Если вы имеете ключи, создаете файл 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 для оценки деталей:

Смотрите также

Приложения

Функции

Внешние веб-сайты