TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。
它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。TTS技术对文本文件进行实时转换,转换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。TTS语音合成技术 [1] 即将覆盖国标一、二级汉字,具有英文接口,自动识别中、英文,支持中英文混读。所有声音采用真人普通话为标准发音,实现了120-150个汉字/分钟的快速语音合成,朗读速度达3-4个汉字/秒,使用户可以听到清晰悦耳的音质和连贯流畅的语调。有少部分MP3随身听具有了TTS功能。
TTS是语音合成应用的一种,它将储存于电脑中的文件,如帮助文件或者网页,转换成自然语音输出。TTS不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性。TTS应用包括语音驱动的邮件以及声音敏感系统,并常与声音识别程序一起使用。(以上内容来自"百度百科")
具体实现步骤:
1.首先下载我为大家准备的"B4A文字转语音压缩包",里面包含了B4A源码及小爱同学v1.2.8的语音引擎;
https://vbee.lanzoui.com/iEbVFpv7lqf
2.然后安装压缩里面的"com.xiaomi.mibrain.speech_小爱同学语音引擎1.2.8"语音引擎
3.安装完成后,在系统设置里面设置tts默认引擎;
3.1.一般手机设置里面都有个搜索框,直接输入tts搜索即可,没有搜索框的话可以在设置里面找到"语言和输入法->文字转语音(TTS)输出"即可
3.2.然后看到"文字转语音(TTS)输出"或者TTS等字眼,点进去设置,选择"系统语音引擎",然后可以点击,下面"收听示例"或者"播放"的字眼,进行测试,是否测试成功;
4.接下来就是编译B4A源代码了(已下载压缩包的同学可以直接编译)
#Region Module Attributes
#FullScreen: False
#IncludeTitle: True
#ApplicationLabel: B4A文字转语音
#VersionCode: 1
#VersionName:
#SupportedOrientations: portrait
#End Region
Sub Process_Globals
Dim TTS1 As TTS
End Sub
Sub Globals
Private btnOk As Button
Private Pch As SeekBar
Private Sellang As Spinner
Private SpR As SeekBar
Private txt_str As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("1")
Sellang.AddAll(Array As String("cn","en"))
End Sub
Sub TTS1_Ready (Success As Boolean)
If Success Then
For i = 0 To Activity.NumberOfViews - 1
Activity.GetView(i).Enabled = True
Next
btnOk_Click
Else
ToastMessageShow("初始化TTS引擎时失败", "")
End If
End Sub
Sub Activity_Resume
If TTS1.IsInitialized = False Then
TTS1.Initialize("TTS1")
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
TTS1.Release
End Sub
Private Sub SpR_ValueChanged (Value As Int, UserChanged As Boolean)
If UserChanged Then
TTS1.SpeechRate = Value / 10
End If
End Sub
Private Sub Sellang_ItemClick (Position As Int, Value As Object)
If btnOk.Enabled = False Then Return
If TTS1.SetLanguage(Value, "") = False Then
ToastMessageShow("找不到该语言", True)
Return
End If
End Sub
Private Sub Pch_ValueChanged (Value As Int, UserChanged As Boolean)
If UserChanged Then
TTS1.Pitch = Value / 10
End If
End Sub
Private Sub btnOk_Click
If txt_str.Text.Length > 0 Then
TTS1.Speak(txt_str.Text, True)
txt_str.SelectAll
End If
End Sub
好了就这样吧;只是一个简单的调用系统默认设置语音引擎而已,并没有集成SDK语音引擎,所以比较简单;同样的也可以下载其他语音引擎,设置为系统默认的语音引擎效果也是一样的;