B4A TTS使用小米"小爱同学语音引擎"进行文字转语音

2021-06-25 21:39:19 浏览数 (1)

TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。

它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。TTS技术对文本文件进行实时转换,转换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。TTS语音合成技术 [1] 即将覆盖国标一、二级汉字,具有英文接口,自动识别中、英文,支持中英文混读。所有声音采用真人普通话为标准发音,实现了120-150个汉字/分钟的快速语音合成,朗读速度达3-4个汉字/秒,使用户可以听到清晰悦耳的音质和连贯流畅的语调。有少部分MP3随身听具有了TTS功能。

TTS是语音合成应用的一种,它将储存于电脑中的文件,如帮助文件或者网页,转换成自然语音输出。TTS不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性。TTS应用包括语音驱动的邮件以及声音敏感系统,并常与声音识别程序一起使用。(以上内容来自"百度百科")

具体实现步骤:

1.首先下载我为大家准备的"B4A文字转语音压缩包",里面包含了B4A源码及小爱同学v1.2.8的语音引擎;

代码语言:javascript复制
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源代码了(已下载压缩包的同学可以直接编译)

代码语言:javascript复制
#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语音引擎,所以比较简单;同样的也可以下载其他语音引擎,设置为系统默认的语音引擎效果也是一样的;

0 人点赞