Showing the changes to interface/src/scripting (2 of 5 files). Show all
Unified · Split
| @@ -65,7 +65,7 @@ void TTSScriptingInterface::testTone(const bool& alsoInject) { · 64 unmodified lines | |||
| 65 | int16_t temp = (glm::sin(glm::radians((float)a))) * 32768; | 65 | int16_t temp = (glm::sin(glm::radians((float)a))) * 32768; |
| 66 | samples[a] = temp; | 66 | samples[a] = temp; |
| 67 | } | 67 | } |
| 68 | emit ttsSampleCreated(_lastSoundByteArray); | 68 | emit ttsSampleCreated(_lastSoundByteArray, AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * 50, 96); |
| 69 | 69 | ||
| 70 | if (alsoInject) { | 70 | if (alsoInject) { |
| 71 | AudioInjectorOptions options; | 71 | AudioInjectorOptions options; |
| @@ -75,11 +75,16 @@ void TTSScriptingInterface::testTone(const bool& alsoInject) { · 3 unmodified lines | |||
| 75 | } | 75 | } |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | void TTSScriptingInterface::speakText(const QString& textToSpeak, const bool& alsoInject) { | 78 | void TTSScriptingInterface::speakText(const QString& textToSpeak, |
| 79 | const int& newChunkSize, | ||
| 80 | const int& timerInterval, | ||
| 81 | const int& sampleRate, | ||
| 82 | const int& bitsPerSample, | ||
| 83 | const bool& alsoInject) { | ||
| 79 | WAVEFORMATEX fmt; | 84 | WAVEFORMATEX fmt; |
| 80 | fmt.wFormatTag = WAVE_FORMAT_PCM; | 85 | fmt.wFormatTag = WAVE_FORMAT_PCM; |
| 81 | fmt.nSamplesPerSec = 24000; | 86 | fmt.nSamplesPerSec = sampleRate; |
| 82 | fmt.wBitsPerSample = 16; | 87 | fmt.wBitsPerSample = bitsPerSample; |
| 83 | fmt.nChannels = 1; | 88 | fmt.nChannels = 1; |
| 84 | fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; | 89 | fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; |
| 85 | fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; | 90 | fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; |
| @@ -146,7 +151,7 @@ void TTSScriptingInterface::speakText(const QString& textToSpeak, const bool& al · 60 unmodified lines | |||
| 146 | _lastSoundByteArray.resize(0); | 151 | _lastSoundByteArray.resize(0); |
| 147 | _lastSoundByteArray.append(buf1, dwSize); | 152 | _lastSoundByteArray.append(buf1, dwSize); |
| 148 | 153 | ||
| 149 | emit ttsSampleCreated(_lastSoundByteArray); | 154 | emit ttsSampleCreated(_lastSoundByteArray, newChunkSize, timerInterval); |
| 150 | 155 | ||
| 151 | if (alsoInject) { | 156 | if (alsoInject) { |
| 152 | AudioInjectorOptions options; | 157 | AudioInjectorOptions options; |
| @@ -160,4 +165,6 @@ void TTSScriptingInterface::stopLastSpeech() { · 7 unmodified lines | |||
| 160 | if (_lastSoundAudioInjector) { | 165 | if (_lastSoundAudioInjector) { |
| 161 | _lastSoundAudioInjector->stop(); | 166 | _lastSoundAudioInjector->stop(); |
| 162 | } | 167 | } |
| 168 | |||
| 169 | emit clearTTSBuffer(); | ||
| 163 | } | 170 | } |
| @@ -19,6 +19,7 @@ · 18 unmodified lines | |||
| 19 | #include <sapi.h> // SAPI | 19 | #include <sapi.h> // SAPI |
| 20 | #include <sphelper.h> // SAPI Helper | 20 | #include <sphelper.h> // SAPI Helper |
| 21 | #include <AudioInjector.h> | 21 | #include <AudioInjector.h> |
| 22 | #include <AudioConstants.h> | ||
| 22 | 23 | ||
| 23 | class TTSScriptingInterface : public QObject, public Dependency { | 24 | class TTSScriptingInterface : public QObject, public Dependency { |
| 24 | Q_OBJECT | 25 | Q_OBJECT |
| @@ -28,11 +29,17 @@ public: · 3 unmodified lines | |||
| 28 | ~TTSScriptingInterface(); | 29 | ~TTSScriptingInterface(); |
| 29 | 30 | ||
| 30 | Q_INVOKABLE void testTone(const bool& alsoInject = false); | 31 | Q_INVOKABLE void testTone(const bool& alsoInject = false); |
| 31 | Q_INVOKABLE void speakText(const QString& textToSpeak, const bool& alsoInject = false); | 32 | Q_INVOKABLE void speakText(const QString& textToSpeak, |
| 33 | const int& newChunkSize = (AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * 50), | ||
| 34 | const int& timerInterval = 96, | ||
| 35 | const int& sampleRate = 24000, | ||
| 36 | const int& bitsPerSample = 16, | ||
| 37 | const bool& alsoInject = false); | ||
| 32 | Q_INVOKABLE void stopLastSpeech(); | 38 | Q_INVOKABLE void stopLastSpeech(); |
| 33 | 39 | ||
| 34 | signals: | 40 | signals: |
| 35 | void ttsSampleCreated(QByteArray outputArray); | 41 | void ttsSampleCreated(QByteArray outputArray, const int& newChunkSize, const int& timerInterval); |
| 42 | void clearTTSBuffer(); | ||
| 36 | 43 | ||
| 37 | private: | 44 | private: |
| 38 | class CComAutoInit { | 45 | class CComAutoInit { |